class Variables { // 쿨래스 영역
int iv; // -> 인스턴스변수
static int cv; // -> 클래스변수
void method() { // 메서드 영역
int lv = 0; // -> 지역변수
}
}
클래스 영역에 선언
클래스의 인스턴트를 생성할 때 만들어짐
인스턴스는 독립적인 저장공간을 가짐
객체는 인스턴스 변수를 묶어 놓은 것
객체 생성이 필요 O
인스턴트변수 앞에 static을 붙이면 됨
모든 인스턴스가 공통된 저장공간(변수)을 공유하게 됨
클래스가 메모리에 올라갈 때 (=클래스가 필요할 때, 객체가 만들어지기 전) 생성
객체 생성이 필요 X
메서드 내에서 선언
메서드 내에서만 사용가능
예시 ) 포커카드(카드 객체)
// 클래스 생성
class Card {
// instance variable, 개별 속성
String kind; // 무늬
int number; // 숫자
// class variable, 공통 속성
static int width = 100; // 폭
static int height = 250; // 높이
}
// 객체 생성후 사용
Card c = new Card();
c.kind = "Heart";
c.number = 5;
Card.width = 200; // '클래스이름.변수명'으로 사용하는 것을 권장
Card.height = 300;