정보처리기사_실기_이론파트 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 둘다 있는데 왜 둘다 변수값을 공유하는게 아니지? 라고 의문의 들었습니다.
영상 다운로드는 안되나요?
0
12
0
26년2회 실기기출은 언제쯤...
0
60
2
이론 공부법 요약본 버전 업데이트 문의
0
39
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
59
2
조건 반복문 질문: for 문 ?
0
66
1
정처기 26-2회. 9번 질문드립니다!
0
86
1
이론 보면서 질문이 있습니다.
0
82
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
94
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
155
2
262 정처기 실기 C언어코딩
0
54
1
정보처리기사 262 실기 Hash(해시) 질문
0
86
2
static 변수 질문입니다.
0
66
2
파이썬 4강 질문입니다.
0
74
2
모의고사 1회 3번문제
0
98
3
41강 30:10
0
70
2
이론 공부법 질문 있습니다.
0
97
2
부모의 생성자 관련 질문
0
70
2
시험지 문제에 필기해도 되나요?
0
94
3
41강 11:23
0
62
2
4강파이썬 질문입니다
0
58
2
try-catch 핸들러명
0
72
2
36강 3:48
0
70
2
35강 18:27
0
70
2
자식 코드 내 super() 생략
0
64
2





