2011-03-06 3 views
0

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

+3

Умм ... 'import'? –

+1

Являются ли классы частью одного и того же проекта? Вы используете Eclipse? – Cephalopod

+0

Вы также можете сначала понять основы - http://download.oracle.com/javase/tutorial/java/package/usepkgs.html –

ответ

2

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

+0

Как скомпилировать это в командной строке или в .bat-файле – Gogoo

0

Если переменные находятся в открытых полей в классах, не должно быть никаких проблем доступа к полям снаружи кода, несмотря на разные пакеты.

... 
package first; 
public class First { 
    public Integer var; 
    ... 
} 

... 
package second; 
public class Second { 
    public Integer var; 

    public void test(Second other) { 
    System.out.println(other.var); 
    } 
... 

} 

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

2

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

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

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

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

В этом случае для того, чтобы получить доступ к вам придется поставить:

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

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

package Second; 

public class SecondClass{ 
    // ... 
} 

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

0

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

файлов в первой/First.java и второй/Second.java

package first; 

public class First { 
    public int x; 
} 


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

package second; 

import first.First; 

public class Second { 
    private int y = new First().x; 
} 
Смежные вопросы