前言
Java 内部类 学习笔记
特点
- 内部类可以直接访问外部类中的成员,包括私有成员
- 外部类要访问内部类的成员,必须要建立内部类的对象
- 在成员位置的内部类是成员内部类
- 在局部位置的内部类是局部内部类
创建内部类对象
1 2 3 4 5 6 7 8 9 10 11 12
| class Outer { ... class Inner { ... } }
public class Test { public static void main(String[] args) { Outer.Inner inner = new Outer().new Inner(); } }
|
匿名内部类
- 匿名内部类是特殊的成员内部类
- 匿名对象一次只能执行一个任务
1 2 3 4 5 6 7 8 9 10 11 12 13
| interface Inner { public void method(); }
public class Test { public static void main(String[] args) { new Inner() { public void method() { ... } }.method(); } }
|
lambda表达式
- 匿名内部类的加强,jdk1.8新特性
- 接口中必须只有一个抽象方法才可以使用lambda表达式
...
:小括号内传递重写的方法的参数,无参则不写
...
:大括号内写重写的抽象方法的内容
1 2 3 4 5 6 7 8 9 10
| Interface Inter { public void method(); }
public class Test { public static void main(String[] args) { Inter inter = (...)->{ ... }; inter.method(); } }
|
完成