前言
前面提到过,可以在代码块里创建内部类,典型的方式是在一个方法体里面创建。局部内部类不能有访问说明符,因为它不是外围类的一部分;但是他可以访问当前代码块内的常量,以及此外围类的所有成员。下面的例子对局部内部类与匿名内部类的创建进行了比较。
示例源码
package com.mufeng.thetenthchapter;
interface Counter {
int next();
}
public class LocalInnerClass {
private int count = 0;
Counter getCounter(final String name) {
class LocalCounter implements Counter {
public LocalCounter() {
// TODO Auto-generated constructor stub
// Local inner class can have a constructor
System.out.println("LocalCounter()");
}
@Override
public int next() {
// TODO Auto-generated method stub
System.out.print(name);
return count++;
}
}
return new LocalCounter();
}
Counter getCounter2(final String name) {
return new Counter() {
// Anonymous inner class cannot have nam