Programming/Java

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

경원구 2015. 12. 6. 00:38

1. 인스턴스 변수 

클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 이 변수도 만들어 진다. 인스턴스(객체)가 존재 해야지만 인스턴스 변수도 존재하는 것이다. 객체도 없는데 인스턴스 변수는 존재할 수 없다.

 

2. 클래스 변수

클래스 변수는 인스턴스 변수 앞에 static 만 붙이면 된다. 선언하는 곳은 클래스 영역이며, 클래스 변수는 모든 인스턴스가 공통된 저장공간을 공유하게 된다. C언어의 전역변수와 비슷하다.

여기서 인스턴스 변수와의 차이점은 한 가지 더있는데 생성되는 위치이다. 인스턴스 변수는 인스턴스를 생성한 후에야 사용가능하지만, 클래스 변수는 인스턴스가 없어도 사용 가능하다. 즉, 클래스가 메모리상에 로딩되면 클래스 변수가 생성되는 것이다.

접근 하는 법은 클래스이름 . 클래스변수로 하면된다.

 

3. 지역 변수

메서드 내에 선언되어 생성과 소멸이 메서드 내에서 이루어지는 변수이다. 중괄호가 쓰이는 곳, 예를들어 for문, if문 등 블록 내에서 선언된 지역변수는 중괄호를 벗어나게 되면 소멸된다.

이렇듯 지역 변수는 해당하는 블럭을 벗어나면 소멸되어 사용할 수 없게 된다.

 

<실습>

static이 붙은 클래스 변수에 대해서 실습해보자.



-결과-






LIST