자신의 메모리를 가리키는 this
- 생성된 인스턴스 스스로를 가리키는 예약어
생성자에서 다른 생성자를 호출하는 this
객체 간의 협력
- 학생이 버스나 지하철을 가는 상황을 객체지향으로 프로그래밍
Static 변수
- static 변수의 정의와 사용방법
static 예약어 자료형 변수이름;
(static, int, serialNum)
- 여러 개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용
- 인스턴스가 생성될 때마다 다른 메모리를 사지는 것이 아니라 프로그램이 메오리에 적재(load)될 때 데이터 영역의 메모리에 생성됨
- 따라서 인스턴스의 생성과 관계없이 클래스 이름으로 직접 참조함
Student.serialNum = 100; //serailNum이 static변수
- 클래스 변수라고도 함
- 멤버변수는 다른 말로 인스턴스 변수라고 함
변수의 유효 범위
변수 유형 | 선언 위치 | 사용 범위 | 메모리 | 생성과 소멸 |
지역 변수 (로컬 변수) |
함수 내부에 선언 | 함수 내부에서만 사용 | 스택 | 함수가 호출될 때 생성되고 함수가 끝나면 소멸함 |
멤버 변수 (인스턴스 변수) |
클래스 멤버 변수를 선언 | 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다은 클래스에서 사용 가능 | 힘 | 인스턴스가 생겅될 때 힘에 생성되고, 가비지 켈렉터가 메모리를 수거할 때 소멸됨 |
static 변수 (클래스 변수) |
static 예약어를 사용하여 클래스 내부에 선언 | 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능 | 데이터 영역 | 프로그램이 처음 시작 할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해체할 때 소명됨 |
Static 응용 : singleton 패턴
- 전 시스템에 단 하나의 인스턴스만이 존재하도록 구현하는 방식
1) 자바는 글로벌 병수가 없다 -> static 변수 사용
2) 생성자가 없으면 publiuc default 생성자가 생성된다. -> 생성자를 private으로 만듦
3) 외부에서 생성된 static으로 생성된 객체를 사용할 수 있어야 한다. -> publuic으로 선언된 static 메서드 제공
'자바' 카테고리의 다른 글
[JAVA] 변수와 자료형 (0) | 2022.11.19 |
---|---|
[JAVA] 백준 기초공부 2 (0) | 2022.11.19 |
[JAVA] 클래스와 객체 1 (0) | 2022.11.19 |
[JAVA] 객체와 클래스 (0) | 2022.11.19 |
[JAVA] 반복문 (0) | 2022.11.18 |