선언 위치에 따라 변수를 클래스변수, 인스턴스변수, 지역변수 총 세 가지로 구분할 수 있다.
클래스 변수(class variable): 클래스 영역에 선언된 변수 중 static이 붙은 것
- 클래스가 메모리에 올라갈 때 생성되고, 프로그램이 종료될 때까지 유지된다.
- 모든 인스턴스가 공통된 저장공간(변수)를 공유한다.
- 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성일 때 클래스 변수를 사용한다.
- 인스턴스를 생성하지 않고 바로 사용할 수 있다. 형식) 클래스이름.클래스변수
- public을 붙이면 같은 프로그램 내에서 어디서나 접근할 수 있는 전역변수(global variable)의 성격을 갖는다.
인스턴스 변수(instance variable): 클래스 영역에 선언된 변수 중 static이 붙지 않은 것
- 클래스의 인서스턴가 생성되었을 때 만들어진다.
- 인스턴스는 독립적인 저장공간을 가진다. 따라서 인스턴스마다 서로 다른 값을 가질 수 있다.
- 인스턴스 변수의 값을 읽어 오거나 저장하기 위해서는 먼저 인스턴스를 생성해야 된다.
*인스턴스변수는 인스턴스가 생성될 때마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있다. 반면, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하기에 항상 공통된 값을 갖는다.
지역변수(local variable): 멤버변수(클래스 변수, 인스턴스 변수)를 제외한 나머지 변수
- 변수 선언문이 수행될 때 만들어진다.
- 메서드 내에 선언되서 메서드 내에서만 사용가능하고, 메서드가 종료되면 소멸되어 사용할 수 없게 된다.
'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 |