2011-03-06 18 views
0

我有兩個類在不同的包(文件夾)。我如何從FirstClass.java調用變量來查看SecondClass.java中的變量。如果所有變量都是公開的。
第一類是在 - > C:\工作區\一\ FirstClass.java
第二類是在 - > C:\工作區\二\ SecondClass.java如何調用Java包

+3

嗯...'import'? –

+1

類是同一個項目的一部分嗎?你在使用Eclipse嗎? – Cephalopod

+0

您可能還想先了解基本知識 - http://download.oracle.com/javase/tutorial/java/package/usepkgs.html –

回答

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)。

在你的問題中,你不清楚你的項目的類路徑是什麼。我會假設你的項目的根源是C:/workspace

所以,FirstClass在包中首先。 第二類是包中的第二類。

(順便說一句,你應該堅持對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; 
}