gpt4 book ai didi

java - .java 文件中的包私有(private)类 - 为什么可以访问它?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:44 24 4
gpt4 key购买 nike

考虑以下代码,其中 HelloWorld 类具有默认或包私有(private)访问权限:

class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}

并假设上述代码保存在名为HelloWorld.java 的文件中。所以我的问题是:由于 HelloWorld 现在是包私有(private)类,它是如何工作的? main() 方法不应该跨包可见或可访问,对吗?

如果类 HelloWorld 被声明为公共(public),这对我来说非常有意义。混淆仅在使用默认包私有(private)访问声明时出现。

最佳答案

§12.1 Virtual Machine Start-Up of the JLS 中描述了 JVM 启动.

请注意,本章未提及关于类的可见性检查。它指定main方法必须是public

这意味着根本没有检查类级别的可见性(哪一种有意义,因为还没有检查可见性的上下文:其中“包”是“调用者”?)。

关于java - .java 文件中的包私有(private)类 - 为什么可以访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7634131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com