작성
·
227
·
수정됨
답변 2
1
안녕하세요. 김소련님, 공식 서포터즈 David입니다.
예제 코드
Class A {
private static int staticAge1 = 1;
private static int staticAge2 = 1;
private int nonStaticAge = 2;
}
A a1 = new A();
A a2 = new A();
예제 코드를 보시면 클래스 A의 인스턴스가 2개 생성되었습니다.
이때, 각 인스턴스는 서로 다른 nonStaticAge 변수를 갖게 됩니다. 다르게 말하면 각 인스턴스는 자신만의 nonStaticAge를 갖게 되는 것입니다.
그러나 staticAge1, staticAge2는 1개씩만 존재하게 됩니다. 다르게 말하면 모든 인스턴스가 공유하게 되는 변수(static으로 선언된 변수)가 존재하는 것입니다. 이는 클래스 변수라고도 불리는 static 변수의 특성 때문입니다. 이런 특성 때문에 1개만 존재해야 한다고 말하는 것입니다.
감사합니다.
0
클래스 변수가 1개만 생성된다는 의미가 아니라, 클래스 변수마다 1개씩만 생성된다는 의미입니다 🙂
클래스 변수 count, count1이 있다면 메서드 영역에 1개씩만 생성된다는 의미이죠.
말씀하신 대로 받아들여질 수도 있다고 생각해요. ㅎㅎ