あるJavaクラスから別のJavaクラスのデータにアクセスするにはどうすればよいですか? たとえば、class_one.java で値を持つ整数を宣言し、class_two.java でそのデータを利用したいと考えています。
7 に答える
変数を public として宣言します。
public class class_one {
public Integer myValue;
}
または、次のような public getter (推奨) を作成します。
public class class_one {
private Integer myValue;
public Integer getMyValue() {
return myValue;
}
}
getterメソッドを介して変数を公開し、目的のクラスのインスタンスでそのメソッドを呼び出します。
最初のクラスで public と宣言されている場合は、他のクラスで最初のクラスのインスタンスを作成し、その変数を使用するだけです。
class Foo
{
public int a=10;
}
他のクラスでは、これを行います
Foo a=new Foo();
int test = a.value;
a) public
: すべてのクラスで可視
b) protected
: 同じパッケージ内のサブクラスとクラスで可視
c) default
: 同じパッケージ内のクラスで可視
これは、変数とメソッド アクセスに対して機能します。
次のいずれかの方法を使用して、ある Java クラスの変数に別の Java クラスでアクセスできます。
- アクセス変数をパブリックとして宣言し、他のクラスで直接アクセスします。ただし、密結合につながるため、避ける必要があります。
- アクセス変数をプライベートとして宣言し、 getter Method を介してアクセスします。これは、変数が他のクラスで誤って変更されるのを防ぐため、変数にアクセスするための推奨される方法です。
reflection
パッケージを使用します。
1つは、目的の値を返す「get」関数を作成することです
そのような
public int getA(){
return a;
}
別の簡単な解決策は、静的変数を使用することです。変数の前に「static」キーワードを置きます。
static int a=5;
変数にアクセスするには、次のクラスを使用します。
Class_One.a;
これにより、変数が同じクラス内にあるかのように使用されます。
変数の宣言方法によって異なります。オラクルのチュートリアルは次のとおりです。
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html