在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。
广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。
接下来我们进行内部类的一个简单介绍和概述后期深挖。
内部类概念
内部类定义:类内定义另一个类
例如:
public class Demo1{ }
class Demo{}
定义内部类定义时可以跟往常定义一个类一样可以使用修饰符继承与现实关系等等,内部类可以直接访问外部类的所有成员(无视访问权限)
静态内部类
定义静态内部类用static修饰
格式:
public class Outer{
static class Inner{
}
}
访问格式:
Outer.Inner x = new Outer.Inner();
成员内部类
成员内部类就是定义在成员位置的内部类
定义格式:
public class Outer{
class Inner{
}
}
访问格式:
Outer.Inner x = new Outer().new Inner();
注意事项:
1.成员内部类中禁止出现静态成员
局部内部类
就是定义外部类中的某个方法里的内部
public class Outer{
public void method(){
class Inner {
}
}
}
匿名内部类
区分之前的内部类,匿名内部类没有具体类名
格式:
new 类名 {
//重写方法
}
new 接口名{
//需要实现的方法
}