정보처리기사_실기_이론파트 p16의 7번 Java static 개념 문제 질문
정답 부분에서 김길동 1 부분이 이해가 가지 않아 질문드립니다.
'김길동 2' 가 답인줄 알았는데..
왜 인구 2인데 김길동 2 가 아닌지 궁금합니다..
person_count++와 age++는 하나의 단락안에 있어 인구 2면 김길동 2/ 인구 1이면 김길동 1로 되어야 하는 거 아닌가요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 한상연님.
질문 주신 Java의 static 개념 문제는 프로그래밍에서 static 변수와 그 작동 방식을 이해하는 데 중요한 역할을 합니다. static 변수는 클래스 레벨에서 공유되며, 클래스의 모든 인스턴스들이 이 변수를 공유합니다. 따라서 인구(person_count) 값이 증가함에 따라 person_count++로 static 변수를 증가시키게 되고, 이 값은 모든 인스턴스에게 모두 동일하게 적용됩니다.
static 변수의 특성: static 변수(person_count)는 클래스에 소속되므로, 생성된 모든 객체가 이 변수 값을 공유하게 됩니다. 따라서 한 인스턴스에서 변수를 증가시키면 다른 모든 인스턴스에도 같은 변경이 반영됩니다.
age++의 동작 방식: 반면에 age는 인스턴스 변수로, 새로운 객체가 생성될 때마다 새롭게 할당됩니다. 각 객체만의 고유한 값을 가지게 되므로, 다른 인스턴스와 공유되지 않습니다.
다시 말해, 객체가 생성될 때마다 person_count가 증가하므로 인구(person_count) 값이 2이라면 ‘김길동 1’에서 생성된 객체가 ‘김길동 2’로 불리지 않는 이유는, 이 이름은 인스턴스가 속한 곳에서 특정 인덱스와는 관련이 없이 각자의 값을 가지기 때문입니다.
자세한 예시와 설명은 아래의 기존 질문 관련 답변을 참고해 주세요:
이 과정을 이해하시고 어떤 상황에서 인스턴스 변수와 static 변수를 쓰는 게 적절한지 알아두시면 도움이 될 것입니다. 🙂
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
답변 감사합니다.
정리하자면 person_count 앞에 static이 붙여있기 때문에 변수 값을 공유하게 되는거고
age는 public이기 때문에 새로운 객체가 생성될 때마다 새롭게 갱신된다는 말씀이신가요?
전 CLass Person안에 person_count랑 age 둘다 있는데 왜 둘다 변수값을 공유하는게 아니지? 라고 의문의 들었습니다.
정처기 2026-3 실기 문의
0
88
2
정처기 실기 3회 컴싸 사용 여부
0
55
1
모의고사 1 회 2번문제 중
0
73
2
26-2 이론문제 재탕
1
56
1
26-2년도 코드문제
0
38
0
26-2 코드문제
0
44
1
15분 48초 질문
0
61
2
26-1년도 이론문제 재탕
0
68
1
26-1년도 코드문제 재탕
0
48
0
이론재탕만 눈치챘어도
0
77
1
25-3년도 이론문제 재탕
0
59
1
25-3년도 코드문제 재탕
0
43
0
출력값 문의
0
56
2
25-2 분기커버리지
0
48
0
25-2 이론 재탕
0
70
1
25-1 이론 재탕
0
54
1
서브넷 마스크
0
55
2
모의고사 1회 계산문제 2개 맞았는데
0
70
2
업캐스팅 문제 예시 4번 부모 호출
0
51
2
모의고사 자료 해설이 너무 불친절하네요.
0
96
2
부모의 생성자 출력 관련
0
50
2
24-3 이론파트 재탕문제
0
58
0
누락코드
0
47
1
다차원 배열 포인터 질문있습니다
0
72
3





