클래스 변수: 멤버변수 중 static이 붙은 것
= Static 변수 = 공유 변수 = 정적 변수(C언어에서 사용)
시작할 때 객체 생성 전에 클래스를 한번 스캔하고 static이 있으면 따로 먼저 한번 메모리에 올리고
그 뒤에 객체 생성 할 때는 static 선언된 클래스 변수는 메모리에 올리지 않는다.
static 키워드가 안 붙어 있으면 인스턴스 변수이다.
클래스 내부 접근: static 변수가 선언된 클래스 내에서는 이름만으로 직접 접근 가능
클래스 외부 접근: private으로 선언되지 않으면 클래스 외부에서도 접근 가능
· 접근 수준 지시자가 허용하는 범위에서 접근 가능
· 클래스 또는 인스턴스의 이름을 통해 접근
main(){ Baby cnt1 = new Baby(); Baby cnt2 = new Baby(); Baby cnt3 = new Baby(); }
- 출력
Baby 생성: 1
Baby 생성: 2
Baby 생성: 3
class Baby2 {
static int babyNum = 0;
Baby2() {
babyNum++;
System.out.println("Baby 생성: " + babyNum);
}
}
public class BabyStatic {
public static void main(String[] args) {
Baby2 cnt1 = new Baby2();
Baby2 cnt2 = new Baby2();
Baby2 cnt3 = new Baby2();
}
}