1. 内部类基础
1.1 什么是内部类
内部类的定义如下:
- 可以将一个类的定义放在另一个类的定义内部,这就是内部类
更具体一点,对于编程思想而言:
- 内部类允许将逻辑相关的类组织在一起,并控制位于内部的类的可视性。
- 内部类就像是一种代码隐藏机制:将类置于其他类的内部,它了解外围类,能与之通信
1.2 内部类的分类
内部类分为以下四类:
- 成员内部类:最最普通的内部类,定义在另一个类的内部
- 局部内部类:定义在一个方法或者一个作用域内
- 匿名内部类:直观来讲就是没有名称的成员内部类
- 静态内部类:使用 static 修饰的成员内部类(书中称之为 嵌套类)
下面就具体分析每个类的语法及其特性。
1.2.1 成员内部类
将包含内部类的外层的类都称为 外围类。
成员内部类是最普通的内部类,定义位于另一个类(外围类)的内部,并且与成员方法和属性平级,可以假象为外部类的非静态方法。
1.2.1.1 内部访问外围
其形式如下:
public class Outer {
String name = "";
static int tag = 1;
private int type = 0;
public Outer(String name) {
this.name = name;
}
private String f(){
System.out.println("Outer.f()")
}
class Inner { //内部类
private String name;
public void showInfo() {
System.out.println(name);//此处表现出特性:成员内部类拥有其外部类的所有元素访问权。
System.out.println(""+tag);
System.out.println(""+type);
}
//内部类通过 外部类.this 令生成对外部类对象的引用
public Outer getOuter(){
return Outer.this;
}
}
public Inner getInner(){
return new Inner();
}
public static void