인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김나영님의 프로필 이미지

작성한 질문수

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

(기출) 2023년 1회 코드해석 문제

28:24 static함수의 hiding 개념은 아예 고려안할까요?

해결된 질문

작성

·

13

0

st.b가 static 클래스 안에서 static 변수로 int b=0으로 정의되었으나, main 안에서 st.b를 정의해준것도 없고 하이딩될수밖에 없어서 그냥 st.b는 0을 그대로 갖다가 출력하는게 아닌가요?

st.a가 위에서 가져다 20으로 썼는데 좀 헷갈리네요.

답변 2

0

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

여기는 하이딩, 업캐스팅 이런 것과 아예 관련이 없습니다.

상속 관계가 아니기 때문입니다. 상속이 되려면 extends를 통해서 상속 받아야 합니다.

 

그냥 정적 변수에 대해서만 신경쓰시면 됩니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

김나영님의 질문은 정적(static) 변수와 메소드의 개념 특히, 하이딩(hiding)에 관한 것인데요. 해당 주제에 관련된 몇 가지 유사한 질문과 답변을 찾아봤습니다.

  1. “23년 1회 println(st.b) ?”: 이 질문에서는 st.b가 왜 0이 아닌 다른 값으로 출력되는지를 설명하고 있습니다. static 변수는 모든 인스턴스가 값을 공유하기 때문에 클래스 내 여러 부분에서 값을 변경할 때 그 변경 사항이 전체에 적용됩니다.

  2. “섹션6 23년 1회 JAVA 출력값 작성하기 문제 질문 드립니다.”: 여기에서는 static 변수에 대한 변경이 어떻게 작동하는지, 예를 들어 static 변수의 초기 값이 0이었지만 이후에 다른 값으로 변경될 수 있다는 내용을 다루고 있습니다.

  3. “23년 1회 java”: 이 질문은 ab 변수의 출력값 차이에 대한 설명과 함께, static 변수의 동작 방식을 이해하는 데 도움을 줄 수 있는 내용을 담고 있습니다.

여기서 static 변수의 하이딩(hiding)은 해당 변수가 다른 값으로 재정의되는 상황을 의미합니다. static 변수는 클래스 레벨에서 공유되며, 변경된 값이 그대로 유지되기 때문에 new 키워드로 객체를 생성해도 변수의 변화된 값을 출력하게 됩니다. 이 점이 객체의 필드와 차이점이라고 할 수 있습니다.

김나영님이 겪으신 헷갈림은 많은 학습자가 경험하는 부분이니, 위의 질문들을 참고하여 static 변수의 작동 방식과 그 특성을 조금 더 이해하실 수 있기를 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.