Как вызвать пакет Java - PullRequest
       8

Как вызвать пакет Java

0 голосов
/ 06 марта 2011

У меня есть два класса, которые находятся в разных пакетах (папка). Как я могу вызвать переменную из FirstClass.java, чтобы увидеть переменную в SecondClass.java. Если все переменные общедоступны.
первый класс находится в -> C: \ workspace \ First \ FirstClass.java
второй класс находится в -> C: \ workspace \ Second \ SecondClass.java

Ответы [ 4 ]

2 голосов
/ 06 марта 2011

Помните, что пакеты не являются папками.Пакеты - это своего рода «виртуальные» папки, соответствующие определенному пути.Эти пакеты могут находиться в самых разных местах вашей файловой системы и даже в разных видах файлов (например, файлы Java ARchive, например, с именем * .jar).

В вашем вопросе неясно, чтопуть к классу вашего проекта.Я предполагаю, что корнем вашего проекта является C:/workspace.

Итак, FirstClass находится в пакете First.Второй класс находится в пакете Second.

(Кстати, вы должны придерживаться соглашений Java, которые говорят, что пакет всегда содержит строчные буквы.)

В этом случае, вЧтобы получить доступ, вы должны будете поставить:

package First;
import Second.SecondClass; // <- Here is the import.
class First{
  // ...
}

в начале вашего файла FirstClass.java.Для этого SecondClass должен быть определен как открытый класс.

package Second;

public class SecondClass{
  // ...
}

Если вы забудете ключевое слово public, ваш класс будет виден только для классов в одном пакете.

2 голосов
/ 06 марта 2011

Я думаю, что вы имеете в виду, что 2 класса находятся в разных проектах Eclipse (я полагаю, вы используете Eclipse).
В вас Project->Properties->BuildPath добавить ссылку из одного проекта в другой
Тогда вы сможете использовать классы

0 голосов
/ 06 марта 2011

В демонстрационных целях этот код должен работать:

Файлы в first / First.java и second / Second.java

package first;

public class First {
    public int x;
}


//////////////////////////////////////

package second;

import first.First;

public class Second {
    private int y = new First().x;
}
0 голосов
/ 06 марта 2011

Если переменные находятся как открытые поля в классах, не должно быть проблем с доступом к полям из внешнего кода, несмотря на различные пакеты.разные проекты, как подсказывают ваши пути?Java-код распространяется только на тот же проект в Eclipse.

...