본문 바로가기
JAVA

ep 03-3. 클래스와 객체2

by L_SU 2022. 11. 20.

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