【笔记】内部类

前言

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();
}
}

完成