this关键字在构造函数中的值传递

 1 class A{
 2     A()/*2.构造*/{
 3         new B(this/*4.将一个  "  A 类型的对象"  作为其参数*/)/*3.构建一个B类对象*/.print();//6.引用 B 类对象 的print()方法
 4     }   //此处this: 弄出一个A类型的对象,这里不用管怎么弄的
 5     void print() {
 6         System.out.println("Hello from A!");     //8.输出 Hello from A!
 7         
 8     }
 9 public static void main(String args[]){
10         new A(); //1. 程序开始,构造 A类对象
11     }
12 }
13 
14 class B{
15     A a;      //声明一个  A 类型的对象 (this)a
16     
17     B(A a/*a 为  A 类型的参数*/)  /*3.B的构造函数*/
18     {    
19         this.a=a;         //5.将this给到的对象作为参数(也就是a)
20     } //成员变量(this)a    //创建(与声明不同)对象 (this)a
21     
22     void print() {
23         a.print(); //7.调用  class A 中的 print()方法
24         
25         System.out.println("Hello from B!"); //9.输出 Hello from B!
26             }
27     
28 } //如果一个类没有显式的定义它自己的构造函数那么 Java
29   //将自动地提供一个默认的构造函数。
//结果:Hello from A!
Hello from B!

以上为个人理解,希望大佬指出错误

posted @ 2020-07-07 09:12  AsindE  阅读(56)  评论(0编辑  收藏  举报