- 局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。
- 闭包(Closure)是一种能被调用的对象,它保存了创建它的作用域的信息。JAVA并不能显式地支持闭包,但是在JAVA中,闭包可以通过“接口+内部类”来实现。
例如:一个接口程序员和一个基类作家都有一个相同的方法work,相同的方法名,但是其含义完全不同,这时候就需要闭包。
class Food{
public static final String name = "Food";
private static int num = 20;
public Food() {
System.out.println("Delicious Food");
}
public Active getEat() {
return new EatActive();
}
private class EatActive implements Active {
@Override
public void eat() {
if (num == 0) {
System.out.println("吃货,已经吃没了");
}
num --;
System.out.println("吃货,你吃了一份了");
}
}
public void currentNum() {
System.out.println("还剩:"+num+"份");
}
}
interface Active{
void eat();
}