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

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

성문님의 프로필 이미지
성문

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

클래스 변수

클래스변수 static관련해서 질문이있어요

해결된 질문

작성

·

329

·

수정됨

0

 화면 캡처 2023-01-11 113445.png여기보면 인스턴스인 b1.canAutoReport=false라고하거나 BlackBox.canAutoReport=false라고 하여도 클래스나 인스턴스 . canAutoReport의 값은 false가 맞나요??

답변 1

1

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?
네, 말씀해주신 부분이 맞습니다. 아래 3가지 문장은 모두 동일하게 canAutoReport 라는 static 변수의 값을 업데이트 합니다.

b1.canAutoReport = false;
b2.canAutoReport = false;
BlackBox.canAutoReport = false; // 권장

하지만 b1, b2 객체를 이용하여 canAutoReport 값을 바꾸면 마치 static 변수가 아닌 인스턴스 변수를 수정하는 것처럼 보일 수 있으며, static 변수는 객체 생성 없이도 클래스명으로 직접 접근하여 값을 수정할 수 있으므로 예제에서는 3번째 코드의 사용이 권장됩니다.

감사합니다 😊

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

ㅇㅎ 감사합니당

성문님의 프로필 이미지
성문

작성한 질문수

질문하기