java内部类笔记

内部类应用场景

配合接口的使用,隐藏了具体实现类

public interface IInner {
    void say();
}
public class TestCls {
    String name = "ych";
    public IInner getInner1() {
        return new Inner();
    }
    public IInner getInner2() {
        return new IInner() {
            public void say() {
                System.out.println("Hello2 " + name);
            }
        };
    }
    private class Inner implements IInner {
        public void say() {
            System.out.println("Hello1 " + name);
        }
    }
}

public class Application {
    public static void main(String[] args) {
        TestCls testCls = new TestCls();
        IInner inner1 = testCls.getInner1();
        inner1.say();
        IInner inner2 = testCls.getInner2();
        inner2.say();
    }
}

非静态内部类和静态内部类

  • 非静态内部类含有外部类的引用,可以使用外部类的实例成员变量和静态成员变量
  • 非静态内部类中不能有静态成员,静态内部类中可以有
原文地址:https://www.cnblogs.com/yinchh/p/11729784.html