this
생성된 인스턴스를 스스로 가리키는 예약어
- 자신의 메모리를 가리킴
- 생성자에서 다른 생성자 호출
- 자신의 주소 반환
예시
...
String name;
public void setname(String name){
this.name = name; //this.name 이 위에 있는 name을 가리킴
}
static 변수
- 여러개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용
- 인스턴스가 생성될 때 마다 다른 메모리를 가지는 것이 아닌
프로그램이 메모리에 load(적재) 될때 데이터 영역의 메모리에 생성됨
-> 인스턴스의 생성과 관계 X,
클래스 이름으로 직접 참조함
Human.age = 10; // age 가 static 변수
(멤버 변수는 다른 말로 인스턴스 변수라고도 함)
정의 방법
- static 예약어 자료형 변수이름
ex) static int age;
변수 유효범위
변수 유형 | 선언 위치 | 사용 범위 | 메모리 | 생성과 소멸 |
지역(로컬 변수) | 함수 내부 | 함수 내부 | 스택 | 함수가 호출될 때 생성 함수가 끝나면 소멸 |
멤버(인스턴스 변수) | 클래스 멤버 변수로 선언 |
클래스 내부, private이 아니면 참조변수로 다른 클래스에도 O |
힙 | 인스턴스가 생성될 때 생성 가비지 컬렉터가 메모리 수거할 때 소멸 |
static(클래스 변수) | static 예약어를 사용해클래스 내부 선언 | 클래스 내부, private이 아니면 클래스 이름으로 다른 클래스에도 O |
데이터 영역 | 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성 프로그램이 끝나고 메모리를 해제할때 소멸 |
응용 : singleton 패턴
- 객체 지향 프로그램에서 인스턴스를 하나만 생성하는 디자인 패턴
'JAVA' 카테고리의 다른 글
ep 04-1. 배열과 ArrayList (0) | 2022.11.27 |
---|---|
ep 03-4. 문제 풀이2 (0) | 2022.11.20 |
ep 03-2. 클래스와 객체1 (0) | 2022.11.20 |
ep 03-1. 제어 흐름 이해하기 (0) | 2022.11.20 |
ep 02-3. 간단한 문제 풀이(1~5) (0) | 2022.11.13 |