四种内部类
看懂别人写的内部类语法即可
成员内部类 - 把内部类看成是外部类的一个成员
a. 成员内部类不能再去定义静态成员
b. 成员内部类中可以通过Outer.this.非静态属性名来访问外部类的非静态属性
外部类.内部类 对象名 = 外部类对象.new 内部类();
静态内部类- 把内部类看成是外部类的一个静态成员
外部类.内部类 对象名 = new 外部类.内部类();
a. 内部是可以定义静态和非静态属性的
b. 内部的普通方法中是不允许访问外部类的非静态属性的.
c. 内部的普通方法中是允许访问外部类的静态属性的
局部内部类 - 内部类是出现在外部类的方法中.
a. 内部类是不允许使用访问修饰符,比如不能使用public
b. 不能定义静态属性的
c. 访问到外部类的静态和非静态成员的
d. 生命只在所在的方法中,方法外部是没有办法拿到这个对象的(不能直接在外部new)
匿名内部类 - 必须掌握的
好处 - 我们可以在程序中少写实现类
jdk8.x中如果遇到函数式接口.推荐使用lambda表达式来替代匿名内部类的写法的.