2011-03-06 27 views
0

私は異なるパッケージ(フォルダ)にある2つのクラスを持っています。 FirstClass.javaから変数を呼び出して、SecondClass.javaの変数を表示するにはどうすればよいですか。すべての変数が公開されている場合。
最初のクラスである - > C:\ワークスペース\まず\ FirstClass.java
二クラスが含まれている - > C:\ワークスペース\セカンド\ SecondClass.javaJavaパッケージの呼び出し方法

+3

ウム/ First.java第一および第二に... 'import'を? –

+1

クラスは同じプロジェクトの一部ですか? Eclipseを使用していますか? – Cephalopod

+0

最初に基本を理解することもできます。http://download.oracle.com/javase/tutorial/java/package/usepkgs.html –

答えて

2

私はあなたのことを意味していることだと思います2つのクラスは別の日食(私はあなたが日食を使用していると仮定)プロジェクトにあります。
あなたが他の
1つのプロジェクトから参照を追加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

パッケージはフォルダではないことに注意してください。パッケージは、特定のパスに対応する「仮想」フォルダの一種です。これらのパッケージは、ファイルシステム上の非常に異なる場所や、さまざまな種類のファイル(例:* .jarという名前のJava ARchiveファイルなど)にも存在します。

あなたの質問では、あなたのプロジェクトのクラスパスが明確ではありません。あなたのプロジェクトのルートはC:/workspaceと仮定します。

したがってFirstClassはパッケージに含まれています。 2番目のクラスはパッケージに含まれます。あなたは配置する必要がありますアクセスするためにその場合

(ところで、あなたはパッケージが常に小文字を持っていると言うのJavaの慣習に固執する必要があります。)

、:

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

FirstClass.javaファイルの先頭に。 これを行うには、SecondClassをパブリッククラスとして定義する必要があります。

package Second; 

public class SecondClass{ 
    // ... 
} 

「public」キーワードを忘れた場合、クラスは同じパッケージ内のクラスに対してのみ表示されます。デモンストレーションの目的のために

0

、このコードは動作するはずです:

ファイルを/ Second.java

package first; 

public class First { 
    public int x; 
} 


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

package second; 

import first.First; 

public class Second { 
    private int y = new First().x; 
} 
関連する問題