内部类

内部类

内部类就是在一个类的内部再定义一个类

  1. 成员内部类
  2. 静态内部类
  3. 局部内部类
  4. 匿名内部类

上代码

package com.example.oop.demo05;

public class Outer {
    public int id = 10;

    // 成员内部类
    public class MemberInner {
        public void testA() {
            System.out.println("成员内部类");
            System.out.println(id);
        }
    }

    // 静态内部类
    public static class StaticInner {
        public void testB() {
            System.out.println("成员内部类");
        }
    }

    public void testC() {

        // 局部内部类
        class LocalInner {
            public void testC() {
                System.out.println("局部内部类");
            }
        }

        // 局部内部类只能在作用域内被调用
        LocalInner localInner = new LocalInner();
        localInner.testC();


        // 匿名调用局部内部类
        new LocalInner().testC();

    }


}

// 一个java类中可以有多个class类,但只能有一个public类
class A {
    public static void main(String[] args) {
        // 成员内部类调用
        Outer outer = new Outer();
        Outer.MemberInner memberInner = outer.new MemberInner();
        memberInner.testA();

        // 静态内部类调用
        Outer.StaticInner staticInner = new Outer.StaticInner();
        staticInner.testB();

        // 局部内部类调用
        outer.testC();


        // 匿名内部类:没有声明类变量
        new B() {
            @Override
            public void testC() {
            }
        };

    }
}

interface B {
    void testC();
}
posted @ 2021-11-03 15:22  Oh,mydream!  阅读(16)  评论(0编辑  收藏  举报