반응형
변수의 선언위치가 변수의 종류와 범위를 결정한다.
클래스(class) 영역에서 선언되면? 클래스 변수, 인스턴스 변수다.
인스턴스는 객체를 생성해야 메모리에 올라간다. 클래스변수는 언제든지 사용 가능하다.
메서드(method) 영역에서 선언되면? 지역변수다.
class Variables {
int iv; // 인스턴스 변수
static int cv; // 클래스 변수 (static이 있기 때문에)
void method() {
int lv = 0; // 지역 변수
}
}
어떤 객체를 만든다고 가정할 때, 공통 속성은 클래스 변수로 한다. 개별 속성은 인스턴스 변수로 한다.
예시 : 포커카드를 제조한다. 폭과 높이는 모든 카드의 공통 속성이기 때문에 클래스 변수(static)로 선언한다.
하트 모양, 다이아몬드 모양, 클로버 모양, 숫자는 카드마다 다르기 때문에 인스턴스 변수로 선언한다.
class Card {
String kind; // 무늬
int number; // 숫자
static int width = 100; //폭
static int height = 250; //높이
}
반응형
'Java' 카테고리의 다른 글
중첩 if문 (0) | 2023.03.16 |
---|---|
변수의 초기화 (0) | 2023.03.14 |
다형성(polymorphism) 개념 (0) | 2023.03.06 |
열등감을 느꼈다 (0) | 2023.03.03 |
Scanner next()와 nextLine() 메서드의 차이점. (0) | 2023.02.24 |