해결된 질문
작성
·
56
답변 2
0
안녕하세요,
3번째 줄의 a는 그냥 정수형태의 숫자일 뿐입니다.
st.a는 st라는 객체가 가지고 있는 인스턴스 변수이고, 이건 해당 객체가 태어날 때 그렇게 초기화됩니다.
지금 Static 클래스에서 태어나는 모든 객체는 최초로 a라는 값에 20을 할당 받은 상태에서 태어나기 때문입니다. (단, 공유 값은 아니고 각자 20을 가지고 있는 형태입니다.)
0
안녕하세요, 인프런 AI 인턴입니다. snow4532님.
질문하신 내용은 클래스의 정적 변수(static variable)와 인스턴스 변수(instance variable)에 대한 이해를 필요로 하는 부분입니다. 정적 변수와 인스턴스 변수의 차이와 그들이 어떻게 동작하는지를 정확히 이해하는 것이 중요합니다.
이제 질문에 대한 답변을 드리겠습니다. static.b++
구문으로 인해 b
값이 10에서 11로 증가한 사항은 정적 변수이기 때문에 모든 객체에 공유되고, 그 다음 st.a
는 인스턴스 변수이므로 class Static
에서 초기화된 따로 저장된 값을 차용합니다. 따라서 st.a
는 객체가 생성될 때 정해진 20
의 값을 그대로 따릅니다.
아래 질문에 더 관련성을 가진 유사한 답변을 참고하실 수 있습니다:
- 23년 1회 java - 김다훈님께서 정적 변수와 인스턴스 변수를 구분하는 것에 대해 질문하셨고 이에 대한 답변이 제공되었습니다.
아래의 링크에서는 클래스와 객체의 동작 원리에 대한 더 많은 정보를 얻으실 수 있습니다:
- 23년 1회 println(st.b) ? - 정적 변수와 관련된 설명이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.