java:内部类分类及访问方法详解
一、定义:
在一个类中定义另外一个类
二、内部类特点:
1、内部类成员可以访问外部类属性,包括私有属性
2、源类文件命名: 外部类名称$内部类.class
三、内部类分类
分类 | 解释 |
---|---|
成员内部类 | 在外部类成员位置定义了一个类,默认非静态 |
局部内部类 | 在外部类方法中定义类 |
匿名内部类(重点) | 内部类简化方式 |
四、访问方式
访问类型 | 访问方法 |
---|---|
外部类访问内部类 | 外部类名.内部类名 对象名=new 外部名().new 内部类名(); |
private修饰的内部类方法访问 | new 外部类.内部类方法(); |
static修饰的内部类访问 | 外部类名.内部类名 对象名=new 外部类对象().内部类对象(); |
内部类static成员访问方法 | 外部类名.内部类名.方法名(); |
局部内部类访问 | new 外部类名.局部方法(); (局部方法中的局部内部类做实例化) |
内部类访问外部类属性 | 外部类名.this.属性名; |
五、注意事项
1、局部内部类 访问 局部变量,局部变量需加入final关键字修饰,否则报错;
JDK8之后版本自动加入final;
2、静态内部类成员方法 只可以访问 外部类静态成员。
六、匿名内部类
//匿名内部类格式
new 类名/接口名(){
方法/重写方法
};
//注意:匿名内部类只可在局部使用!