因为我提前的傻逼行为,导致1.11的笔记基本全没了,没保存的泪流满面,然后缺失的是方法内部类还有匿名内部类,有时间的话会补完,没时间就算了
首先谈方法内部类
public class D {
public static int age;
public Object d() {
class D1 {
public final int age = 13;
int temp = 22;
public String beat() {
new D();
return D.age + "";
}
}
return new D1().beat();
}
public static void main(String[] args) {
D D1 = new D();
System.out.println(D1.d());
}
}
上面的就是方法内部类的实现过程,值得注意的是beat()方法的返回类型是String,所以必须加“”进行强制类型转化,不论你是不是Integer都是一样.
然后不能在内部类前加修饰符private public protected static ,我自己推测原因可能是因为这些修饰都给了访问权限,而方法内部类的生命周期就是方法生效时,如果方法用完,那么内部类的框架就会被回收
3.匿名内部类
首先我个人感觉匿名内部类其实很怪,我会尽量避免使用这个,然后介绍下
public class B implements C {
private int B1 = 812938, B2 = 71387;
public void a() {
System.out.println("this is a text");
}
public void b() {
System.out.println("this is another txt");
}
public void asd() {
C.super.asd();
}
}
上面就是我用匿名内部类实现接口,由此,总结下匿名内部类 匿名内部类可以用来处理一些需要继承的父类,并且父类中存在抽象方法这种,(当然你也可以自己写一些方法,但我感觉那纯属蛋疼)然后还有一种就是我上面这种,选择利用匿名内部类直接实现接口 注意,匿名内部类只能选择继承或者实现接口,不能两个同时满足



