2 つの異なるクラスで単一のオブジェクトにアクセスする方法はありますか?
クラスがあるとしましょう
public class A{
MyClass myObj = new MyClass();
myObj.setValue(x);
}
myObj
クラスなどの別のクラスで使用し、B
設定された値にアクセスできる方法はありますか。つまり、クラスでメソッドx
を作成する必要はありませんか?getX
A
はい、できます。
オブジェクトを静的にすることができます...
public class A{
public static MyClass myObj = new MyClass();
myObj.setValue(x);
}
これは、A.myObj を介してどこからでもアクセスできます。
そうは言っても、静的を使いすぎるのは好きではありません。絶対に必要な場合にのみ使用してください。
格納されたデータがクラスに関連付けられている場合は静的変数を使用し、オブジェクトに関連付けられている場合は非静的変数を使用します。
これを意味する場合
public class A{
int x; int y;
}
public class B{
A a; int b;
}
はい。これは可能です。
したがって、オブジェクトを一度作成し、それを A と B のコンストラクターに渡します。
C c = new C();
A a = new A(c);
B b = new B(c);
...
public class A
{
private final C c;
public A(C c)
{
this.c = c;
}
}