Java中的依赖类

时间:2010-09-26 23:04:32

标签: java class import packages

对于我们的任务,我们需要为神经网络编写代码。我计划这样做的方法是编写一个Node类,它是网络中的一个节点;一个Layer类,它是一个节点层和一个NeuralNet类,它是一个层网络。

我在理解Java设计用于导入的方式方面遇到了很多麻烦。对我而言,将Node类包含在我的Layer类中,将Layer类包含在我的NeuralNet类中似乎应该是一件简单的事情,但Java不会就像从默认包中导入一样。

我读过的内容表明,您导入的任何内容都需要包含在一个包中,并且包中有自己的子目录。由于我计划构建我的类的方式,这让我看起来像是一个笨拙且不必要的复杂目录结构,即。

neuralpkg.layerpkg.nodepkg.Node

有人可以向我解释这是否是实现我想要的结构的唯一方法,或者是否有一些我错过的更简单的方法?

为了它的价值我可以毫不费力地用C / C ++编写它,但尝试以类似的方式导入只会让我心痛。

3 个答案:

答案 0 :(得分:4)

您不需要像neuralpkg.layerpkg.nodepkg那样对包进行分层,其中“neural”,“layer”和“node”是各个类的子包。

您只需创建一个名为“ben”的包,并将所有类放在那里。因此,在您的源目录中,您将拥有如下布局:

--/ben
----Layer.java
----NeuralNetwork.java
----Node.java

然后,每个类定义应以行package ben;开头。

同一个包中的类不需要互相导入。

答案 1 :(得分:2)

更像这样:

创建一个名为src的目录。这是所有java文件的根目录。在它下面,创建一系列名为

的目录

com-> ben->神经或某些此类。将所有java源文件放在神经文件夹中。

另外,你使用的是什么IDE?为Netbeans,Eclipse或IntelliJ的免费版本打分。 Java需要一个好的IDE。当您创建一个新类时,IDE将为您执行package语句,并极大地帮助您进行导入。

答案 2 :(得分:1)

将Java中的包视为C ++中的命名空间。从它听起来,似乎你想要在同一名称空间中的一切。默认包可以被认为是未命名的命名空间(我认为)。

您应该做的只是创建一个简单的包com.class.hw01。把你所有的课程都放在那里。这样你甚至不需要导入任何东西,你可以像在C ++中一样声明/使用你的类,如果它们在同一名称空间中。