본문 바로가기
JAVA/기초

[JAVA 기초] 06 클래스와 객체 2

by 푸_푸 2022. 8. 11.
728x90

*this
- this : 스스로를 가리키는 예약어
1) 생성자에서 다른 생성자를 호출하는 this
클래스에 생성자가 여러 개 있을 때 다른 생성자를 호출하는 경우
2) 자신의 주소를 반환하는 this
생성된 클래스 자신의 주소 값을 반환할 수 있음

*static 변수
- static(정적) 변수 : 클래스 내부에 선언함
프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간이 할당되고, 그 값은 모든 인스턴스가 공유함
인스턴스보다 먼저 생성되어 인스턴스가 아닌 클래스 이름으로도 참조하여 사용할 수 있음

*클래스 메서드
- 클래스 메서드 : static 변수를 위한 메소드. static 메서드라고도 
static 변수처럼 클래스 이름으로 직접 호출할 수 있음
클래스 메서드 내부에서는 인스턴스 변수를 사용할 수 없음

*변수 유효 범위
1) 지역 변수 : 함수나 메서드 내부에 선언, 밖에서는 사용할 수 없음
스택 메모리에 생성, 함수가 호출될 때 생성되었다가 함수가 반환되면 해제되면서 함께 없어짐
2) 멤버 변수 : 어드 메서드에서나 사용할 수 있음
힙 메모리에 생성, 가비지 컬렉터에 의해 수거되면 메모리에서 사라짐(클래스 내부의 여러 메서드에서 사용할 변수는 멤버 변수로 선언하는 것이 좋음)
3) static 변수 : private이 아니라면 클래스 외부에서도 사용 가능.
데이터 영역 생성(상수, 문자열, static 변수). 클래스 생성과 상관 없이 데이터 영역 메모리에 생성됨
 프로그램 실행이 끝난 뒤 메모리에서 내려가면 소멸됨. 프로그램 시작부터 끝까지 상주하므로 크기가 너무 큰 변수를 static으로 선언하는 것은 좋지 않음

*싱글톤 패턴
- 싱글톤 패턴 : 인스턴스를 단 하나만 생성하는 디자인 패턴
static을 응용하여 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하는 방식

728x90

댓글