一、java内部类的类型
java有4中内部类,分贝为成员内部类(非静态内部类),静态内部类,匿名内部类,局部内部类
二、四种内部类的写法
/**
* @ClassName: Cat
* @Author: tanp
* @Description: ${description}
* @Date: 2020/9/7 15:06
*/
public class Cat {
private String name;
/**
* 成员内部类:外貌
*/
class Appearance {
private String color;
}
/**
* 静态内部类:主人
*/
static class Master {
private String name;
}
public static void main(String[] args) {
//匿名内部类
Thread thread = new Thread() {
@Override
public void run() {
System.out.println("这只猫一直在睡觉");
}
};
thread.start();
}
void sleep() {
/**局部内部类*/
class Deepsleep {
public void print(){
System.out.println("这是猫在沉睡");
}
}
}
}
三、静态内部类,成员内部类的访问方法
https://blog.csdn.net/bird_tp/article/details/83792825
四、匿名内部类要点
1.使用匿名内部类有一个前提条件:必须继承一个父类或实现一个接口,(匿名内部类基本上是针对重写一个方法时候使用)
2.匿名内部类不能有构造方法。 ( 它无法被继续引用以生成实例,因而不需要构造方法。 在生成匿名内部类的时候,与其一个对应的实例随即产生。 )
3.匿名内部类不能定义任何静态成员、方法和类。 ( 它只有一个实例与之对应。因而无需静态。 )
4.一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。 (格式为:new 类名或者接口名(){ 重写方法; })
五、局部内部类作用域
局部内部类是定义在一个方法或作用域中的类,它的访问权限仅限于方法内或作用域内