什么是内部类
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)
访问特点
内部类可以直接访问外部类中的成员,包括私有成员.
而外部类要访问内部类中的成员必须要建立内部类的对象.
定义内部类
public class Outer {
class Inner{
}
}
Inner就是Outer的内部类
上图可以看出,编译后使用
$
符号进行标识.
注意:内部类的作用域被限制在包含它的类之中.
内部类与外部类互相访问
public class Outer {
int num = 10;
class Inner{
public void show(){
System.out.println("Outer Class Num:" + num);
}
}
public void method(){
//外部类访问内部类必须创建内部类对象
Inner inner = new Inner();
inner.show();
}
}
当我们在主函数中调用的时候只需要创建Outer类的对象,并访问method方法.
Outer outer = new Outer();
outer.method();
除了上面这种方式,我们也可以直接实例化Outer类中的Inner内部类.
Outer.Inner inner = new Outer().new Inner();
inner.show();
静态内部类
public class Outer {
static int num = 10;
static class Inner{
public static void show(){
System.out.println("Outer Class Num:" + num);
}
}
public void method(){
Inner inner = new Inner();
inner.show();
}
}
注意:内部类为静态的,内部类的所有成员也必须为静态的.