0 java
当我开始学习Java时,我也开始使用ubiqutous Hello world应用程序.哪个或多或少像:
public class MyClass {
public static void main(String args[]){
//some code here....
}
}
Run Code Online (Sandbox Code Playgroud)
自从我与Java约会以来已经很多年了但是最近我遇到了一个有问题的初学者:即使她能够正确编译,她的类文件也不会运行.
在查看她的代码后,我注意到的第一件事就是没有使用main方法的类上的公共访问说明符.我立刻嘲笑她,并通过添加公共访问修饰符来"修复"它.这个笑话在我身边,因为这也没有任何区别.然后我意识到她试图从类文件所在的目录中执行编译的类.我改为那个目录并发出了java命令并立即运行.
这让我想到了我的问题......大多数hello world示例都具有公共访问权限的类设置,当它完全没有时就可以了.那么,如果一个包含main方法的类有什么不同呢?
为了让我们更清楚地知道我们在这里做了什么,步骤如下:
我们上过课
c:\users\[usersname]\[my documents folder]\myprog.class
Run Code Online (Sandbox Code Playgroud)
我们试图从c:\运行它(作为我们的工作目录).我们确实指定了期望它起作用的完整相对路径.像这样:
java users\[usersname]\[my documents folder]\myprog
Run Code Online (Sandbox Code Playgroud)
当然这只是失败了,直到我改成文件夹,使其成为当前工作目录并再次发出命令
java myprog
Run Code Online (Sandbox Code Playgroud)
因此,当您将类放在类似于其名称前面的文件夹结构的包中时,基本上这样的调用是有意义的.在这种情况下,该类不在任何包中.
"public"与"package"说明符与其他包中的类是否允许"看到"该类有关.
大多数hello world程序会忽略包,因此它们会使用更常见的公共选项.大多数人在实际学习将项目组织到包中之前,从不必了解其他包说明符(及其局限性).当然,如果你只有一个班级,那也没关系.
另外,我不确定你为什么要嘲笑新手程序员.我已经用Java编写了10年的代码,并且一直在学习新的东西.
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |