인프런 커뮤니티 질문&답변

coramdeojy님의 프로필 이미지

작성한 질문수

(2024) 일주일만에 합격하는 정보처리기사 실기

23년 1회 println(st.b) ?

해결된 질문

24.06.28 11:56 작성

·

126

·

수정됨

0

상기 문제 중 println 두번째 st.b는 정적변수이자 인스턴스 변수로 0이 아닌지요

st.a 가 인스턴스 변수로 20인 것을 보면 st.b 또한 인스턴스 변수로 0이 되는 것이 아닌지 궁금합니다.

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

2024. 06. 28. 15:31

안녕하세요.

먼저, 강의를 수강해주셔서 감사드립니다.

변수 앞에 static으로 선언되는 경우, 해당 클래스를 통해 생성되는 모든 객체(인스턴스)는 그 값을 공유하게 됩니다.

 

static 변수를 출력하는 것 자체가 여러가지 방법으로 접근할 수 있습니다.

생성된객체.b

클래스명.b

둘 다 가능합니다.

아마 이런 표기의 차이점 때문에 인스턴스 변수로 생각하실 수도 있는데, 똑같이 정적 변수(static 변수)라고 생각해주시면 되겠습니다.

 

coramdeojy님의 프로필 이미지
coramdeojy
질문자

2024. 06. 28. 20:39

말씀하신 것의 핵심은 "Static.b와 st.b 가 같다" 는 것으로 이해하며

2번째인 st.b는 하나 증가된 11로 알겠습니다.

감사합니다.

 

  • a는 인스턴스 변수로, Static 클래스의 각 객체마다 별도로 존재합니다.

  • b는 정적(static) 변수로, Static 클래스의 모든 객체가 공유합니다.

.