【问题标题】:Do I have to use "package" term in every class?我必须在每个课程中使用“包”术语吗?
【发布时间】:2013-07-21 19:11:47
【问题描述】:

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

这是我的 hello world 应用程序。

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

但这会返回很多错误。当我将 package first; 行放在我的 Java 类的顶行时,它会运行。但是,这本书没有使用包术语。这是 Netbeans 的规则,还是我需要知道的?

【问题讨论】:

  • 这是一个命名空间声明,特定于 Java,而不是 Netbeans 要求。 en.wikipedia.org/wiki/Java_package
  • 好的,我明白了。当我将我的班级移出包时,我不需要使用包术语。

标签: java


【解决方案1】:

您永远需要将类放入包中。然而,这几乎总是一个好主意。这是 Netbeans 积极尝试鼓励您去做的事情。

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

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

另外,你可能还没有学习到这里,你不能从默认包中导入类,或者在默认包类中使用包私有可见性修饰符。

【讨论】:

  • 我恢复了对这个答案的建议编辑,因为它不是一个实质性的变化,而且因为有人来这个答案了解包可能不知道“默认”包的含义。
【解决方案2】:

这是因为 Java, A Beginner's Guide, 4th Edition 的作者很可能使用了“默认包”。这样,您不必包含任何包。包是一个命名空间声明。

什么是命名空间声明!? 命名空间声明只是一个用于组织类的包。例如,如果您要拥有多个类,比方说您的 GUI,以及多个算法类,将它们混合在一起总是有点令人困惑。然而,将它们分类到不同的包装中是一个很好的解决方案。

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

net.sourceforge.softwarename.securitynet.sourceforge.softwarename.gui 等...

另外请注意,在命名包时,切勿使用大写字母。更多信息here

在学习编程时,你会遇到很多这样的情况。他们都是游戏的一部分。你只需要自己想办法。

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

【讨论】:

  • 你写了一个很好的答案,但你实际上并没有向可怜的家伙解释包是如何工作的。包从一开始就在 Java 中,所以这本书省略它并不是这本书过时的问题。而且它不会通过切换到 Eclipse(或任何其他 IDE)来神奇地解决。
  • 您现在可以考虑删除不喜欢的内容吗?
  • 我宁愿建议您使用与您学习 Java 的原因相同的 IDE,这样您就不会只是被记事本困住的猴子,而其他人都非常高效。跨度>
【解决方案3】:

不,您不需要将包放入您的类中,除非您要将它导入到另一个类中,该类将在它自己的文件中。当您不想将它们设为私有但只希望子类(或子类)访问它们时,这就是受保护类型变量的用武之地。你也错过了你的班级公开声明,所以它应该看起来像

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


}

【讨论】:

    【解决方案4】:

    包代表一个目录,其中包含相关的类和接口组。

    包是一个命名空间,它组织了一组相关的类和 接口。从概念上讲,您可以将包视为类似于 计算机上的不同文件夹。您可以将 HTML 页面合二为一 文件夹,另一个中的图像,以及另一个中的脚本或应用程序。 因为用 Java 编程语言编写的软件可以 它由数百或数千个单独的类组成,它使 通过放置相关的类和 接口到包中。

    您可以在下面找到一些关于 java 包的很好的讨论:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2017-05-12
      • 2015-03-07
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多