内部类

2020-05-08  本文已影响0人  寂静的春天1988

顾名思义内部类就是创建在类内部的一个类

public class Test {
    class A {
        private int age;
    }
}

内部类的特点:
1、内部类可以直接访问外部类的成员,包括私有
2、外部类要访问内部类的成员,必须创建对象

内部类的位置:
1、成员内部类
2、局部内部类

public class Test {
    //成员内部类
    class A {
        private int age;
    }
    
    public void method() {
        //局部内部类
        class B {
            private int age;
        }
    }
}

访问内部类的成员:外部类.内部类 对象名 = new 外部类().new 内部类()

class Outer {
    class Inner {
        public void method() {
            System.out.println(111);
        }
    }
}

public class Test {
    
    public static void main(String[] args) {
        Outer.Inner oi=new Outer().new Inner();
        oi.method();
    }
    
}

二、匿名内部类

interface inner{
    public void show();
};
class Outer {
    public void method() {
        new inner() {
            @Override
            public void show() {
                System.out.println("show");
            }
        };
    }
}
public class Test {
    
    public static void main(String[] args) {
        new Outer().method();
    }
}

1、创建匿名内部类的格式:
new 抽象类名或者接口名(){
重写方法。
}

上面得代码很像new了一个接口,但是,不是!接口也是不能new的,这是创建了一个匿名内部类。
总结:匿名内部类就是创建了抽象类的子类,或者接口实现类的匿名对象。

上面只是创建了匿名内部类还没有调用

inner i = new inner() {
    @Override
    public void show() {
        System.out.println("show");
    }
};
i.show();
上一篇 下一篇

猜你喜欢

热点阅读