2013-07-17 118 views
-2

是否有一种方法可以访问两个不同类中的单个对象?在两个不同的类中使用相同的对象

可以说我有一类

public class A{ 
MyClass myObj = new MyClass(); 

myObj.setValue(x); 
} 

是否有另一个类使用myObj的方式,说阶级B并能够访问是IE x设置,而无需创建getX方法的价值类A

+2

您不会传递圆对象,而是传递对象的引用,并且该引用可以随意多次重复。 –

回答

0

能否将它传递到B.

的构造
public class B { 
    MyClass obj; 

    B(MyClass obj) { 
     this.obj = obj; 
    } 
} 

所以new B(myObj);然后就叫myObj.getValue();

0

如果你的意思是这

public class A{ 
int x; int y; 
} 

public class B{ 
A a; int b; 
} 

然后是。这个有可能。

0

您可以设置X是公共/包范围的等(here's the Java tutorial on access control),但我真的不劝告。

为什么不想要getX()访问器?这是一个体面的做法,因为它促进封装,并且您的实现x(您是否有直接参考?您是否即刻进行计算?是否从缓存中延迟加载?)可以在将来更改而不必修改所有客户类别。如果你直接访问x,那么你直接暴露你的实现。

0

所以创建对象一次,并把它传递到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; 
    } 
} 
1

是的,可以。

可以使物体静止......

public class A{ 
public static MyClass myObj = new MyClass(); 

myObj.setValue(x); 
} 

这可以从任何地方可见A.myObj

访问说了这么多,我不喜欢用静态太多。只有在绝对必要时才使用。

当存储的数据与类相关联时使用静态变量,而当与对象关联时使用静态变量。

相关问题