본문 바로가기
Skills/Java

클래스변수, 인스턴스변수, 지역변수

by Hoseok 2022. 12. 16.
728x90
반응형

변수의 종류 선언위치 생성시기
클래스변수(static이 붙은 변수) 클래스 영역 클래스가 메모리에 올라갈 때
인스턴스변수 인스턴스가 생성되었을 때
지역변수 클래스 영역 이외의 영역(메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때

▷클래스변수 : 모든 인스턴스가 공통된 저장공간(변수)를 공유, 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있다, public을 앞에 붙이면 어디서나 접근할 수 있는 '전역변수'의 성격을 가짐.

 

▷인스턴스변수 : 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가짐, 인스턴스마다 고유한 상태를 유지해야 하는 속성의 경우, 인스턴스변수로 선언.

 

▷지역변수: 메서드 내에서만 사용 가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 됨.


인스턴스 변수는 인스턴스가 생성될 때마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값을 갖는다.

728x90
반응형