멤버변수(Field)에는 클래스변수와 인스턴스변수가 있고, 이를 제외한 나머지는 모두 지역변수이다.
>> 지역변수(local variable)
클래스 영역 이외 메소드 영역에 선언되는 변수이다. (필드를 제외하고, { } 내에 선언된 변수)
메소드 내에서만 사용가능하고, 메소드가 종료되면 소멸되어 더이상 사용할 수 없는 변수이다. stack 영역에서 사용!
>> 인스턴스변수(instance variable)
인스턴스를 생성했을 때 힙 영역에 생성되어 사용가능한 변수이다. 인스턴스(객체)가 생성되면서 참조변수를 통해 독립적인 저장공간을 가지게 되므로 고유의 값을 가질 수 있다. (각각 다른 값을 유지 해야하는 속성의 경우 인스턴스변수로 선언)
>> 클래스변수(class variable)
'static'과 함께 사용하는 클래스 영역의 변수이다. 프로그램 실행시 클래스가 메모리에 올라감과 동시에 static 영역에 생성된 변수로서 사용가능하다. 즉, 인스턴스를 생성하지 않아도 공통된 저장공간을 공유하며 사용가능한 변수이다. 한 클래스 내에서 공통적인 값을 유지해야하는 속성들은 static키워드를 사용하여 클래스변수로 선언한다.
(클래스명.변수명 으로 생성되는 변수)
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[Java] 형변환(Casting) (0) | 2022.08.07 |
---|---|
[Java] 메서드 (0) | 2022.08.03 |
[Java] 변수와 데이터타입 (0) | 2022.07.30 |
[Java] JDK / JRE / JVM (0) | 2022.07.27 |
자주 사용하는 이클립스 단축키 (0) | 2022.06.30 |