java 如何调用局部内部类和匿名类

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:16:06
我想知道在MAIN()中如何调用局部内部类。成员内部类在MAIN()中可以通过外部类的方法调用生成,但局部内部类和匿名类不知道怎么在MAIN()调用:例如如何在MAIN()调用下面的局部内部类:
interface OutInterface2{ //定义一个接口
}
class OuterClass3{
public OutInterface2 doit(final String x){ //doit()方法参数为final类型
class InnerClass2 implements OutInterface2{ //在doit()方法中定义一个内部类
InnerClass2(String s){
s=x;
System.out.println(s);
}
}
return new InnerClass2("doit");
}
}
注:有不明白意思可以提出!
现在我知道成员内部类,局部内部类可以通过在外部类方法中的返回内部类继承接口语句就可以在MAIN()中定义内部对象,但下面的这个匿名类不知道怎么调用:例如:
class OuterClass4{
public OutInterface2 doit(){//定义doit()方法
return new OutInterface2(){//声明匿名内部类
private int i=0;
public int getValue(){
return i;
}
}

}

}
谢谢2楼,我现在明白匿名类的一些在MAIN()调用的方法了!下面这个问题又是怎么了!
如果上面的那个getValue()方法不是接口OutInterface2的

匿名内部类是没有类名的,所有方法都是直接在里面实现好了的,不需要什么调用。像你上面的例子,你可以直接调用包含匿名内部类的那个方法,不就等于调用了匿名内部类吗

局部内部类,外部不可见吧。