日期:2014-05-20  浏览次数:20711 次

有关java内部类的,高手帮我看下
不知道为什么得不到想要的结果

我要 控制台输出:

(*^__^*) 嘻嘻……
say foo!!!

代码如下:
Java code
/**
 * 匿名类
 */
public class InnerClassTest05 {


        public Foo02 f = new Foo02() {
            
            public void say() {
                System.out.println("(*^__^*) 嘻嘻……");
            }
        };
        
        public Foo02 test(){
            return new Foo02(){
                public void say(){
                    System.out.println("say foo!!!");
                }
            };
        }
        
        public static void main(String[] args) {
            InnerClassTest05 inner = new InnerClassTest05();
            inner.f.say();
            inner.test();
        }
}


Java code
public interface Foo02 {

    void say();
}



我的机子上面 只输出了: (*^__^*) 嘻嘻……

不懂……

------解决方案--------------------
Java code

public Foo02 test(){
            return new Foo02(){
                public void say(){
                    System.out.println("say foo!!!");
                }
            };
        }

------解决方案--------------------
inner.test() 这句相当于只创建对象,创建完对象后调用才能输出:
inner.test().say()