我是否必须在每个班级使用"套餐"一词?

Yus*_*suf 15 java

首先,我正在尝试用Java学习Java ,初学者指南,第4版.我使用Ubuntu作为我的操作系统,使用Netbeans作为我的IDE.我需要创建一个项目来使用Netbeans时创建一个类.

这是我的hello world app.

class First{
    public static void main(String args[])
    {
        System.out.println("Hello!");
    }   
}
Run Code Online (Sandbox Code Playgroud)

但这会带来很多错误.当我把它放到package first;我的Java类的顶行时,它会运行.但是,这本书没有使用包期限.这是Netbeans的规则,还是我需要了解的内容?

gob*_*dor 18

你永远不需要把一个类放在一个包中.但是,这几乎总是一个好主意.这是Netbeans积极尝试鼓励你做的事情.

对于小项目,使用默认包(即没有package语句的文件)是可以的.但是,一旦您的项目增长并开始添加外部库,就会发生不好的事情.如果其他人决定使用默认包并碰巧有一个同名的类怎么办?现在,因为你们都在同一个包中,所以可能会发生冲突!

您的文件结构也应该反映您的包.也就是说,文件package com.myurl.helloworld应位于名为的文件夹中com/myurl/helloworld.这与上述原因相同.

此外,您可能还没有在学习中获得此类,您无法从默认包中导入类,也无法在默认包类中使用package-private visibility修饰符.


小智 11

那是因为Java的作者,初学者指南,第4版最有可能使用"默认包".这样,您就不必包含任何包.包是名称空间声明.

什么是命名空间声明!? 命名空间声明只是一个用于组织类的包.例如,如果您要使用多个类,假设您的GUI和算法的多个类,将它们混合在一起总是有点令人困惑.然而,将它们分类到不同的包中是一种优越的解决方案.

如果其他人要查看您的代码,还应该遵循一个命名约定.软件包应以顶级域名命名.我倾向于创建SourceForge项目,然后我最终得到这样的东西:

net.sourceforge.softwarename.security,net.sourceforge.softwarename.gui等...

另请注意,在命名包装时,切勿使用大写字母.更多信息在这里.

在学习编程时,你会遇到很多这样的情况.他们都是游戏的一部分.你只需要自己弄清楚一点.

我能为你做的最好的就是推荐Eclipse.另外,在学习Java时,我建议您不要使用IDE!那是因为你将学会独立编码.但是,这取决于你.

  • 你写了一个很好的答案,但你实际上并没有向这个可怜的家伙解释包是如何工作的。包从一开始就在Java中,所以省略它的书不是书旧和过时的问题。并且它不会通过切换到 Eclipse(或任何其他 IDE)来神奇地解决。 (2认同)
  • 我更愿意推荐使用与您学习 Java 时将使用的 IDE 相同的 IDE,这样您就不会只是被记事本困住的猴子,而其他人的工作效率却很高。 (2认同)