Зависимые классы в Java - PullRequest
       11

Зависимые классы в Java

1 голос
/ 27 сентября 2010

Для нашего задания нам нужно написать код для нейронной сети. Я планировал это написать класс Node, который является узлом в сети; класс Layer, представляющий собой слой узлов, и класс NeuralNet, представляющий собой сеть слоев.

У меня много проблем с пониманием того, как Java предназначена для работы с импортом. Мне кажется, что было бы просто включить мой класс Node в мой класс Layer и мой класс Layer в мой класс NeuralNet, однако Java не любит импортировать из пакета по умолчанию.

То, что я прочитал, предполагает, что все, что вы импортируете, должно быть в пакете, и пакеты имеют свой собственный подкаталог. Из-за того, как я планирую структурировать свои классы, это оставляет меня с, как мне кажется, громоздкой и излишне сложной структурой каталогов, т. Е.

neuralpkg.layerpkg.nodepkg.Node

Может ли кто-нибудь объяснить мне, является ли это единственным способом реализации структуры, которую я хочу, или есть какой-то гораздо более простой способ, который я пропустил?

Что бы это ни стоило, у меня не возникло бы проблем с написанием этого на C / C ++, но попытка импортировать в похожем стиле дала мне только душевную боль.

Ответы [ 3 ]

4 голосов
/ 27 сентября 2010

Вам не нужно наслоять пакет, как neuralpkg.layerpkg.nodepkg, где «neural», «layer» и «node» являются подпакетами для соответствующих классов.

Вы можете просто создать пакет с именем "ben" и поместить все свои классы туда. Таким образом, в вашей исходной директории у вас будет такой макет:

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

Каждое определение класса должно начинаться со строки package ben;.

Классы в одном пакете не должны импортировать друг друга.

2 голосов
/ 27 сентября 2010

Это больше похоже на:

Создайте каталог с именем src.Это корень, под которым будут идти все файлы Java.Под ним создайте серию каталогов под названием

com-> ben-> neural или что-то подобное.Поместите все исходные файлы Java в нейронную папку.

Кроме того, какую IDE вы используете?Оцените себя Netbeans, Eclipse или бесплатную версию IntelliJ.Java нуждается в хорошей IDE.Когда вы создаете новый класс, IDE выполнит для вас оператор пакета и очень поможет с импортом.

1 голос
/ 27 сентября 2010

Думайте о пакетах в Java как о пространствах имен в C ++.Судя по тому, как это звучит, кажется, что вы хотите, чтобы все было в одном пространстве имен.Пакет по умолчанию может рассматриваться как безымянные пространства имен (я думаю).

Что вам нужно сделать, это просто создать простой пакет com.class.hw01, например.И поместите все свои классы там.Таким образом, вам даже не нужно ничего импортировать, вы можете просто объявить / использовать ваши классы, как в C ++, если они были в одном пространстве имен.

...