目录
一、定义
将一个类定义在类的内部,或者方法的内部,我们就叫内部类
语法:class A{
……
class B{
……
}
}
要注意的是内部类与外部类公用一个Java文件但是编译后生成不同的字节码文件
二、内部类的分类
内部类一共分为4种,分别是
实例内部类
静态内部类
匿名内部类
本地内部类
三、实例内部类
1、语法
语法:
class A{
……
class B{
……
}
}
2、注意
1.实例内部类不能定义static(静态)的成员变量,如果要定义必须得让final修饰
2.实例内部类不能定义static(静态)得成员方法
3.在实例内部类里可以直接访问外部类里的成员变量
4.在实例内部类里访问与外部类同名的变量时:外部类名.this.变量
5.在实例内部类里访问外部类里的静态成员变量时:外部类名.变量
3、实例化
实例化实例内部类时,有两种方法
第一种,先实例一个外部内对象,再通过他实例一个实例内部类对象
第二种直接实例
四、静态内部类
1、语法
语法:
class A{
……
static class B{
……
}
}
2、注意
1.静态内部类里不能直接访问外部类里非静态的成员变量,要访问必须实例化一个外部类对象
要访问实例化一个外部类对象
2.静态内部类里可以有静态的成员方法和静态的成员变量
3.创建静态内部类对象时,不需要先创建外部类对象
4.静态内部类里只能直接访问外部类里的静态成员变量
3、实例化
语法:外部类名.静态内部类名 对象名 = new 外部类名.静态内部类名();
五、本地内部类
1、语法
语法:他是定义在方法里面的类
public void func(){
class A{
……
}
}
2、注意
1.局部内部类不能被public、private等访问修饰限定符修饰
2.只能在方法里面使用