内部类初学

我对内部类有以下四个总结:
1.内部类的嵌套可以理解成类的链关系,在构造一个内部类(非static)的实例的时候,会将直接外层类的实例作为参数传进构造函数,而外层类的实例也是用其外层类的实例构造,所以是一种链状关系,内部的类可以使用所有外层的类的实例,而外层的类不能使用内层的类, 应用a.this(最外层类实例) ,a.b.c.this(链中某个外层的实例)。
2.创建一个内部类 new aa().new bb().new()cc 实际上是调用外层类实例.new 本层构造函数()如果内部类是static的不需要外层类的实例多个static嵌套的内部类的实例 aa.bb.cc test = new aa.bb.cc();
3.继承自内部类要调用父类的外层类的super().
4.在类内部可以是使用外层类,但是如果生成一个实例的句柄就没有提供访问上层类的功能。

 e.g.

class A {
    int i = 2;
    A (){
       System.out.println("A");
       i --;
    }
    class B {
       int i = 1;
       B() {
           System.out.println("B");
           i++;
       }
    }
 
}

class C {
    public static void main(String [] args) {
       A a = new A();
       B b = a.new B();
       System.out.println(a.i);
       System.out.println(b.i);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值