gpt4 book ai didi

java - 将包含 main 方法的 java 类设置为 public 和 not 之间有什么意义

转载 作者:行者123 更新时间:2023-12-01 07:42:02 26 4
gpt4 key购买 nike

当我开始学习 Java 时,我也从无处不在的 Hello world 应用程序开始。这或多或少类似于:

public class MyClass {

public static void main(String args[]){

//some code here....

}

}

距离我接触 Java 已有很多年了,但最近我遇到了一个初学者的问题:即使她能够正确编译,她的类文件也无法运行。

查看她的代码后,我注意到的第一件事是,在具有 main 方法的类上没有公共(public)访问说明符。我立即 mock 她的这个错误,并通过添加公共(public)访问修饰符来“修复”它。这个笑话当然是针对我的,因为这也没有任何区别。然后我意识到她试图从与类文件所在的目录不同的目录执行编译后的类。我更改为该目录并发出 java 命令,它立即运行。

这让我想到了我的问题...大多数 hello world 示例都具有具有公共(public)访问权限的类设置,而根本没有它也可以。那么对于包含 main 方法的类来说,这有什么区别呢?

为了帮助您更清楚地了解我们正在做什么,请执行以下步骤:

我们的课是

c:\users\[usersname]\[my documents folder]\myprog.class

我们尝试从 c:\(作为我们的工作目录)运行它。我们确实指定了期望它起作用的完整相对路径。像这样:

java users\[usersname]\[my documents folder]\myprog

当然,这只是失败,直到我更改为文档文件夹,使其成为当前工作目录并再次发出命令,如下所示

java myprog

所以基本上,当您将类放在类似于其名称前面的文件夹结构的包中时,这样的调用是有意义的。在这种情况下,该类不在任何包中。

最佳答案

“public”与“package”说明符与是否允许其他包中的类“查看”该类有关。

大多数 hello world 程序都会忽略包,因此它们使用更常见的公共(public)选项。大多数人永远不需要了解其他包说明符(及其局限性),直到他们真正学会将项目组织到包中。当然,如果你只有一节课,那也没关系。

另外,我不知道你为什么 mock 新手程序员。我已经用 Java 编码 10 年了,而且仍然在不断学习新东西。

关于java - 将包含 main 方法的 java 类设置为 public 和 not 之间有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3113782/

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