例如有一个类A,A有两个实例对象a1、a2,问a1可以访问到a2的成员变量或调用a2的成员方法吗?
同一个类的两个对象的话,可以使用单例模式,其实单例模式只会创建一个实例,只不多你在new的时候,它会将你的引用指向同一个对象,所以当你有多个引用a1,a2的时候,当a2发生的变更,a1的内容也同步变更,因为它们指向的是同一个实例,这样不知道能否满足你的需求
可以通过以下的情况
1.组合
也就是说一个类持有另一类的引用。
class A{
private final int demoA;
private final B b;
public A(int demoA, B b) {
this.demoA = demoA;
this.b = b;
this.b.demoB = 1;
}
}
class B {
private int demoB;
public B(int demoB) {
this.demoB = demoB;
}
}
class A extends B{
private final int demoA;
public A(int demoA, int demoB) {
super(demoB);
this.demoA = demoA;
this.demoB = demoB;
}
}
class B {
protected int demoB;
public B(int demoB) {
this.demoB = demoB;
}
}
3.通过传参
将实例化的对象通过传参的方式进行调用
class A {
private final int demoA;
public A(int demoA) {
this.demoA = demoA;
}
public void detail(B b){
b.demoB = 1;
}
}
class B {
protected int demoB;
public B(int demoB) {
this.demoB = demoB;
}
}
成员方法之所以叫成员方法,就是因为它要通过成员去访问
你在a2里为什么要去访问a1的成员方法呢,什么目的呢
如果一个方法跟类A的实例无关,那你就应该拿出来变成一个公共方法,而不要放进类里
你的场景是怎样的呢,需要用同一个类,不同的实例去相互访问