Java中关于this变量用法的问题
classA{publicA(){newB(this).print();}publicvoidprint(){System.out.println("HellofromA...
class A{
public A(){
new B(this).print();
}
public void print(){
System.out.println("Hello from A");
}
}
class B{
A a; //????
public B(A a){ //????
this.a=a;
}
public void print(){
a.print();
System.out.println("Hello from B");
}
}
public class ThisUse{
public static void main(String[] args){
new A(); //????
}
}
请具体解释一下程序,谢谢 展开
public A(){
new B(this).print();
}
public void print(){
System.out.println("Hello from A");
}
}
class B{
A a; //????
public B(A a){ //????
this.a=a;
}
public void print(){
a.print();
System.out.println("Hello from B");
}
}
public class ThisUse{
public static void main(String[] args){
new A(); //????
}
}
请具体解释一下程序,谢谢 展开
展开全部
class A{
//A的构造函数,创建了一个匿名的对象B,B的构造函数的参数是A的实例,然后调用B的print方法
public A(){
new B(this).print();
}
public void print(){
System.out.println("Hello from A");
}
}
class B{
A a; //在B类中声明了一个A类型变量a
public B(A a){ //B的构造函数,参数是A
this.a=a; //将参数a传递给B对象中的a变量
}
public void print(){
a.print(); //调用了B对象中的a变量的print方法
System.out.println("Hello from B");
}
}
public class ThisUse{
public static void main(String[] args){
new A(); //创建一个匿名的A类对象
}
}
显示结果为:
Hello from A
Hello from B
注意点:观察两个类构造函数的结构,分析被调用的方法的先后顺序。在这里this的作用体现在:
new B(this).print(); A将自己的实例对象当作参数传入B的构造函数;
this.a=a; 调用了B自己的实例对象的变量a,为其赋值。
//A的构造函数,创建了一个匿名的对象B,B的构造函数的参数是A的实例,然后调用B的print方法
public A(){
new B(this).print();
}
public void print(){
System.out.println("Hello from A");
}
}
class B{
A a; //在B类中声明了一个A类型变量a
public B(A a){ //B的构造函数,参数是A
this.a=a; //将参数a传递给B对象中的a变量
}
public void print(){
a.print(); //调用了B对象中的a变量的print方法
System.out.println("Hello from B");
}
}
public class ThisUse{
public static void main(String[] args){
new A(); //创建一个匿名的A类对象
}
}
显示结果为:
Hello from A
Hello from B
注意点:观察两个类构造函数的结构,分析被调用的方法的先后顺序。在这里this的作用体现在:
new B(this).print(); A将自己的实例对象当作参数传入B的构造函数;
this.a=a; 调用了B自己的实例对象的变量a,为其赋值。
展开全部
this在哪个类中,就表示引用的哪个类.
就拿你写的来说,
class B{
A a; //????
public B(A a){ //????
this.a=a;
}
/////////////////////////////////
this.a=a;
你总不能写a=a;吧,this.a代表的是A a,你在B中定义的这个a,不是public B(A a)这里的形参.
this.a=a;后面那是a才是pblic B(A a)中的a.
就拿你写的来说,
class B{
A a; //????
public B(A a){ //????
this.a=a;
}
/////////////////////////////////
this.a=a;
你总不能写a=a;吧,this.a代表的是A a,你在B中定义的这个a,不是public B(A a)这里的形参.
this.a=a;后面那是a才是pblic B(A a)中的a.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this相当于实例化过的自己
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询