1. 内部类的分类
- 成员内部类
- 局部内部类
- 静态内部类
- 匿名内部类
1. 内部类的访问规则
内部类可以直接访问外部类的变量,方法,包括私有。
外部类要访问内部类的变量或者方法需要创建内部类的对象。
2. 成员内部类
成员内部类:内部类的位置处在外部类的成员变量的位置。
class Outter {
private String title;
class Inner {
private String title;
public void show() {
System.out.println("内部类");
}
}
}
内部类的实例化
// 外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
Outter.Inner in = new Outter.new Inner();
3. 局部内部类
局部内部类:内部类的位置在方法中
class Outter {
private String title;
public void method() {
class Inner {
private String title;
public void show() {
System.out.println("内部类");
}
}
}
}
4. 静态内部类
静态内部类:使用static关键字修饰的内部类
不能使用外部类的非static成员变量和成员方法
class Outter {
private String title;
static class Inner {
private String title;
public void show() {
System.out.println("内部类");
}
}
}
内部类的实例化
//成员内部类是静态的:
//外部类名.内部类名 对象名 = new 外部类名.内部类名();
Outter.Inner in = new Outter.Inner();
5. 匿名内部类
匿名内部类:没有类名的内部类,是内部类的简化写法。
interface Inner {
void show();
}
class Outter {
private String title;
public void methon() {
new Inner() {
System.out.println("内部类");
}.show();
}
}