Programming Language/Java

[Java] 변수의 종류

LeeJaeJun 2023. 12. 30. 23:49
728x90
반응형

선언 위치에 따라 변수를 클래스변수, 인스턴스변수, 지역변수 총 세 가지로 구분할 수 있다.

 

클래스 변수(class variable): 클래스 영역에 선언된 변수 중 static이 붙은 것

 - 클래스가 메모리에 올라갈 때 생성되고, 프로그램이 종료될 때까지 유지된다.

 - 모든 인스턴스가 공통된 저장공간(변수)를 공유한다.

 - 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성일 때 클래스 변수를 사용한다.

 - 인스턴스를 생성하지 않고 바로 사용할 수 있다. 형식) 클래스이름.클래스변수 

 - public을 붙이면 같은 프로그램 내에서 어디서나 접근할 수 있는 전역변수(global variable)의 성격을 갖는다.

 

인스턴스 변수(instance variable): 클래스 영역에 선언된 변수 중 static이 붙지 않은 것

 - 클래스의 인서스턴가 생성되었을 때 만들어진다.

 - 인스턴스는 독립적인 저장공간을 가진다. 따라서 인스턴스마다 서로 다른 값을 가질 수 있다.

 - 인스턴스 변수의 값을 읽어 오거나 저장하기 위해서는 먼저 인스턴스를 생성해야 된다.

 

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

 

지역변수(local variable): 멤버변수(클래스 변수, 인스턴스 변수)를 제외한 나머지 변수

 - 변수 선언문이 수행될 때 만들어진다.

 - 메서드 내에 선언되서 메서드 내에서만 사용가능하고, 메서드가 종료되면 소멸되어 사용할 수 없게 된다.

728x90
반응형

'Programming Language > Java' 카테고리의 다른 글

[Java] 상속(inheritance)  (0) 2023.12.30
[Java] 오버로딩(overloading)  (0) 2023.12.30
[Java] 클래스와 객체  (0) 2023.12.30
[Java] 특수 문자 다루기  (0) 2023.12.30
[Java] 출력  (1) 2023.12.30