1.外部类与内部类的区别
1)外部类只能别default、public修饰(包可见与所有可见),内部类多了三个修饰符:private 、protected、static(本类可见、子类可见、静态内部类)
2)内部类从属一个外部类,外部内之间相互独立
2.内部类
1)非静态外部类
(1) 可以访问外部类的私有数据
(2)外部类通过内部类的实例来访问内部类的数据
(3)非静态内部类中不能含有静态成员、静态方法、静态代码块
2)静态外部类
(1)不能访问外部类的非静态成员。
3)局部内部类
(1) 不能别访问控制符和staic 修饰
4)匿名内部类
(1)只需使用一次,不能重复使用,创建该类的实例后这个类的定义立即消失。
(2)匿名内部类必须继承一个父类或实现一个接口
(3)匿名内部类不能是抽象类
5)Lambda 表达式
(1) 作用:代替匿名内部类的繁琐语法。
(2)Lambda表达式的目标类型必须是函数式接口(只包含一个抽象方法的接口,但可有包含多个默认方法、静态方法)。