Java obj=新的A(新的B)的意思是什么;?
方法1 AppMain.javaJava obj=新的A(新的B)的意思是什么;?,java,object,oop,Java,Object,Oop,方法1 AppMain.java A obja = new A(new B()); B objb = new B(); A obja = new A(objb); RandomClass.java B b; pubic A(B b){ this.b = b; } //same code 方法2 AppMain.java A obja = new A(new B()); B objb = new B(); A obja = new A(objb); RandomClass.java
A obja = new A(new B());
B objb = new B();
A obja = new A(objb);
RandomClass.java
B b;
pubic A(B b){
this.b = b;
}
//same code
方法2
AppMain.java
A obja = new A(new B());
B objb = new B();
A obja = new A(objb);
RandomClass.java
B b;
pubic A(B b){
this.b = b;
}
//same code
方法1和方法2相同吗?只有一个细微的区别,这两种方法是相同的(除了第一种方法中需要
新A(新B())
而不是新A(新B)
)。不同之处在于,在第二种方法中,您最终会得到一个对a
构造函数提供的B
对象的单独引用(变量objb
)。因此,方法1失败,方法2不失败——它们不同
如果您打算将其设置为new B()
,但是您在发布问题时有点粗心,那么这些都是完全相同的new B()
的意思是:创建一个新的B对象,然后该表达式计算为指向这个新创建的对象的引用。使用newa(newb())
将此引用的副本传递给A构造函数。使用objb=…
可以将此引用的副本分配给局部变量,然后调用a构造函数,将此引用的副本交给它
换句话说,这可以归结为完全相同的事情。谢谢,也谢谢你指出了缺失的():)在方法1中,引用“obja”指向两个对象(新的A和新的B)?@PradiptaGhatak-引用
obja
指向新的A
对象。在内部,A
对象可能维护或不维护对传递给构造函数的B
对象的引用;它是否存在取决于对象的定义方式。Java中的引用总是null
或引用单个对象。