java中创建对象,以下三种分别是什么意思? A B = new B(this); A = new B(this); A = newB();

2024-12-25 15:21:25
推荐回答(3个)
回答1:

A B = new A(this)
A = new B(this)
A = newB();
从后往前说。最后一种写法如果是创建对象,那么语法是错误的。如果编译没错,那么A应该是一个已声明的变量,newB()是一个方法,调用newB()会返回一个值,将这个值赋给变量A。
第二种情况,如果前面没有语句,那么语法是错误的。如果前面已经将A声明为一个变量,那么这句话正确。
第一种情况下,如果没有导入B类,仅是把B当做一个变量名,那么语句正确。传的this是一个指向自己的引用。这句话是利用自身对象来创建一个新对象,那么可以预见,新对象中的各项值应该与自身对象是相同的。这句话与子类没有关系

回答2:

A a=new B()这个比较好理解,关键加个this后,this表示的是对象,也就是说你要在B的构造方法中调用当前类的一个对象。不知道这样的解释可以不?

回答3:

这个是最基础的 JAVA SE 的知识,应该系统学习,绝不能半灌水 。
首先 this.A 是没意的吧 this :表示当前对象, A: 表示一个类 this.A : ...

A a = new B(this) 应该是这样的: A 是 B 的父类, 将一个 B 的实例( new B(this) ) 赋值给 A ,这是向上转型 。