137、Java内部类之把内部类放到外部

01.代码如下:

package TIANPAN;

class Outer {  // 外部类
    private String msg = "Hello World !";

    public void fun() {
        // this表示当前调用fun()方法的对象,在本程序中主方法由out对象调用,所以this就是out
        new Inner(this).print();   // 实例化内部类对象,并且调用print()方法
    }

    /*内部类需要访问msg属性,但是此属性属于Outer类,而在Outer类里面此属性使用private进行封装
      所以如果此时要得到这个属性的内容,需要定义一个getter方法*/
    public String getMsg() {
        return this.msg;
    }
}

class Inner {                      // 定义一个内部类
    private Outer out;             // 必须依靠对象才可以调用getMsg()方法

    public Inner(Outer out) {      // 在构造方法中接收外部类对象
        this.out = out;
    }

    public void print() {          // 利用Outer类对象调用方法
        System.out.println(this.out.getMsg());
    }
}

/**
 * 此处为文档注释
 *
 * @author 田攀 微信382477247
 */
public class TestDemo {

    public static void main(String args[]) {
        Outer out = new Outer();    // 实例化外部类对象
        out.fun();                  // 调用外部类方法
    }
}

02.效果如下:

知识有价,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢。

原文地址:https://www.cnblogs.com/tianpan2019/p/12360362.html