변수는 멤버 변수(클래스 변수, 인스턴스 변수), 지역 변수로 나뉜다.

이렇게 변수의 종류를 결정하는 중요한 요소는 변수의 선언된 위치이다.

변수의 선언된 위치에 따라 종류를 알아보자.

 

 

 

변수의 종류 

선언 위치 

생성 시기 

 클래스 변수

(class variable)

클래스 영역 

클래스가 메모리에 올라갈 때 

 인스턴스 변수

(instance variable)

 인스턴스가 생성되었을 때

 지역 변수

(local variable)

 클래스 영역 이외의 영역

(메서드, 생성자, 초기화 블럭 내부)

 변수 선언문이 수행되었을 때

 

인스턴스 변수

· 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어짐.

· 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있음.

· 인스턴스마다 고유한 상태를 유지해야하는 경우 인스턴스 변수로 선언.

 

클래스 변수

· 선언 방법은 인스턴스 변수 앞에 static을 붙여주면 됨.

· 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있음.

  ex) 클래스이름.클래스변수

· 클래스가 로딩될 때 생서오디어 프로그램이 종료될 때까지 유지.

· 모든 인스턴스가 공통된 저장공간(변수)을 공유함. 그래서 공유 변수(Shared variable)라고도 함.

· 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야할 경우 클래스 변수로 선언해야 함. 

 

지역 변수

· 메서드 내에 선언되어 메서드 내에서만 사용가능.

· 메서드가 종료되면 소멸 됨.

· for문, while문의 블럭({ }) 내에 선언된 지역 변수는 블럭 내에서만 사용 가능하며, 블럭을 벗어나면 소멸됨.

· 반드시 초기화 하고 사용.

 

 

[참고] 자바의 정석

'프로그래밍 > Java' 카테고리의 다른 글

오버로딩과 오버라이딩  (0) 2017.08.14
JVM의 메모리 구조  (0) 2017.08.13
클래스와 객체와 인스턴스  (0) 2017.08.11
변수 타입에 따른 기본값  (0) 2017.08.05
객체 지향 프로그래밍이란?  (0) 2017.06.04

WRITTEN BY
김치치즈스마일
세계정복!

,