728x90
변수
변수가 어디에 선언되어있는지가 중요.
이 위치에 따라서 변수를 구분한다.
자바의 변수는 ( 클래스 변수, 인스턴스 변수, 지역 변수 ) 이렇게 세 개로 나뉜다.
지역변수 - 멤버 변수를 제외한 변수
클래스 변수 - 멤버 변수 중 static 붙은 변수
인스턴스 변수 - 멤버 변수 중 static 붙지 않은 변수
class Variables {
int a; // 인스턴스 변수
static int b; // 클래스 변수 ( static 변수, 공유 변수 )
void method(){
int c; // 지역 변수
}
}
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화.
어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스.
객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며,
인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미.
- 인스턴스 변수 (Instance Variable)
- 클래스 영역 안에 생성
- 클래스의 인스턴스를 생성할 때 만들어짐
- 독립적인 공간을 가짐. 즉, 서로 다른 값을 가질 수 있음
- 고유한 상태를 유지해야 할 경우 인스턴스 변수를 선언
- 클래스 변수 (Class Variable)
- 인스턴스 변수 앞에 static이 붙은 변수
- 모든 인스턴스가 공통된 저장공간(변수)을 공유
- 한 클래스의 모든 인스턴스들이 같은 값을 가지게 할 경우 클래스 변수로 선언
- '클래스 이름.클래스변수' 와 같이 사용
- 변수 앞에 public을 붙이면 전역변수
- 지역 변수 (Local Valiable)
- 메서드 안에서만 선언, 사용 가능함
- for, while 문 등에서 선언된 변수는 모두 지역변수
- {}를 벗어나면 소멸됨
class Card {
String kind; // 무늬 (인스턴스 변수)
int number; // 숫자 (인스턴스 변수)
static int width = 100; // 폭 (클래스 변수)
static int height = 250; // 높이 (클래스 변수)
}
Card 인스턴스는
무늬(kind)와 숫자(number)가 모두 다르니 인스턴스 변수로 선언.
각 카드의 폭(width)과 높이(height)는 모든 인스턴스가 같은 값을 가지므로 클래스 변수로 선언.
카드의 폭과 높이를 변경하면 모든 카드의 폭과 높이가 변경된다. (하나하나 바꿀 필요가 없다는 뜻)
728x90
반응형
'Java' 카테고리의 다른 글
27_Scanner (0) | 2016.09.26 |
---|---|
25_생성자 예제 (0) | 2016.09.23 |
23_HashMap (0) | 2016.09.07 |
18_Eclipce 자주쓰는 단축키 (0) | 2016.08.30 |
5_Iterator (0) | 2016.08.22 |