黑马程序员技术交流社区

标题: 匿名内部类--求解,编译通过,运行报错 [打印本页]

作者: SpiderManZZH    时间: 2014-11-23 21:52
标题: 匿名内部类--求解,编译通过,运行报错
码如下
interface Inter
{
             void show();
}
class Outer
{
           public static Inter method()
          {
                      return new Inter()
                      {
                               public void show()
                              {
                                              System.out.println("inner class show");
                              }
                    };
          }
}
class InnerClassDemo
{
            public static void main(String[] args)
           {
                       Outer.method().show();
            }
}

分析:主函数是 Outer.method().show();,由Outer.method().可知道method()方法是一个静态函数,直接由外部类调用,后面的.show();是接口的方法,所以Outer.method().返回的是一个对象,用于调用show() 方法,所以使用匿名内部类,但结果是编译通过,运行时出现错误,截图如下,请各位看看问题出在哪里了?



作者: DamonZh    时间: 2014-11-23 22:15
你应该运行InnerClassDemo这个类文件,而不是InnerClass
作者: Crazy_Eat_Code    时间: 2014-11-23 22:26
哥们 你编译的类 没主函数咋运行咧 改成 java InnerClassDemo 试试
作者: 冥夜    时间: 2014-11-23 22:38
你运行的类没有主函数。。
作者: SpiderManZZH    时间: 2014-11-23 22:54
冥夜 发表于 2014-11-23 22:38
你运行的类没有主函数。。

实在不好意思,我说咋半天没发现是哪里的问题呢,后来改了主函数,问题已解决,非常感谢!
作者: SpiderManZZH    时间: 2014-11-23 22:56
Crazy_Eat_Code 发表于 2014-11-23 22:26
哥们 你编译的类 没主函数咋运行咧 改成 java InnerClassDemo 试试

实在不好意思,后来改了主函数,问题已解决,非常感谢!
作者: SpiderManZZH    时间: 2014-11-23 22:58
DamonZh 发表于 2014-11-23 22:15
你应该运行InnerClassDemo这个类文件,而不是InnerClass

实在不好意思,后来改了主函数,问题已解决,非常感谢!
作者: mmppp    时间: 2014-11-24 14:55
你的主函数名字叫什么,运行的时候就应该写java 什么啊。不然jvm没有检测到主函数呢。
作者: SpiderManZZH    时间: 2014-11-24 17:59
mmppp 发表于 2014-11-24 14:55
你的主函数名字叫什么,运行的时候就应该写java 什么啊。不然jvm没有检测到主函数呢。 ...

你没认真看问题,我的问题是主函数入口类写错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2