java - 为什么此私有静态变量能被访问呢?
高洛峰
高洛峰 2017-04-18 10:47:37
0
11
1456
class Test{
    private static int i = 1;
    
    public static void main(String[] args){
        Test test = new Test();
        System.out.println(test.i);  //此处为何能访问到私有的i变量呢?
    }
}

如果与Test类不同包,调用i变量却报错,为何?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(11)
Peter_Zhu

main 함수도 Test 클래스의 정적 함수이기 때문입니다

PHPzhong

이 사진을 드릴게요. 특히 보호된 것과 기본값의 차이점을 살펴볼 수 있습니다.

黄舟

private 키워드는 이 멤버를 포함하는 클래스를 제외하고 이 패키지의 다른 클래스를 포함하여 다른 클래스가 이 멤버에 액세스할 수 없음을 의미합니다. 따라서 다른 패키지뿐만 아니라 동일한 패키지에도 액세스할 수 없습니다.

刘奇

이렇게 해도 안되면 private수정된 변수는 무슨 용도인가요?

阿神

현재 수업이 진행되지 않는 이유는 무엇인가요?

Ty80

그래도 작동하지 않으면 i는 어디에 사용됩니까? i를 선언하는 것은 헛된 일이 아닙니까?
또한 비공개이므로 Test 클래스 호출 시 다른 클래스에서 i를 호출할 수 없으며 이 클래스에는 제한이 없습니다.

小葫芦

분명히 다시 배워야 합니다. public private static은 객체 지향 프로그래밍에서 이러한 네 가지 일반적인 수정자를 보호합니다

大家讲道理

i는 static이므로 test.i(instance.static 변수)는 Test.i(class.static 변수)와 동일하고, i는 private이므로 Test 클래스 내에서만 접근이 가능합니다.

Ty80

기본 프로그래밍 질문입니다. 정의와 범위를 다시 한번 살펴보시길 바라겠습니다.

伊谢尔伦

이 클래스에서는 private으로 수정된 변수에 접근할 수 있기 때문에 접근 한정자에 대한 질문입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿