是否有一种方法可以访问两个不同类中的单个对象?在两个不同的类中使用相同的对象
可以说我有一类
public class A{
MyClass myObj = new MyClass();
myObj.setValue(x);
}
是否有另一个类使用myObj
的方式,说阶级B
并能够访问是IE x
设置,而无需创建getX
方法的价值类A
?
是否有一种方法可以访问两个不同类中的单个对象?在两个不同的类中使用相同的对象
可以说我有一类
public class A{
MyClass myObj = new MyClass();
myObj.setValue(x);
}
是否有另一个类使用myObj
的方式,说阶级B
并能够访问是IE x
设置,而无需创建getX
方法的价值类A
?
能否将它传递到B.
的构造public class B {
MyClass obj;
B(MyClass obj) {
this.obj = obj;
}
}
所以new B(myObj);
然后就叫myObj.getValue();
如果你的意思是这
public class A{
int x; int y;
}
public class B{
A a; int b;
}
然后是。这个有可能。
您可以设置X是公共/包范围的等(here's the Java tutorial on access control),但我真的不劝告。
为什么不想要getX()
访问器?这是一个体面的做法,因为它促进封装,并且您的实现x
(您是否有直接参考?您是否即刻进行计算?是否从缓存中延迟加载?)可以在将来更改而不必修改所有客户类别。如果你直接访问x
,那么你直接暴露你的实现。
所以创建对象一次,并把它传递到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;
}
}
是的,可以。
可以使物体静止......
public class A{
public static MyClass myObj = new MyClass();
myObj.setValue(x);
}
这可以从任何地方可见A.myObj
访问说了这么多,我不喜欢用静态太多。只有在绝对必要时才使用。
当存储的数据与类相关联时使用静态变量,而当与对象关联时使用静态变量。
您不会传递圆对象,而是传递对象的引用,并且该引用可以随意多次重复。 –