A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐僧踏歌 中级黑马   /  2014-4-23 15:44  /  1089 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唐僧踏歌 于 2014-4-30 20:30 编辑
  1. class China
  2. {   final String nationalAnthem="义勇军进行曲";
  3.     Beijing beijing;                  
  4.     China()
  5.     {  beijing=new Beijing();
  6.     }
  7.     String getSong()
  8.     {  return nationalAnthem;
  9.     }
  10.    class Beijing           
  11.     {   String name="北京";
  12.         void speak()
  13.         {  System.out.println("我们是"+name+" 我们的国歌是:"+getSong());
  14.         }
  15.     }
  16. }
  17. public class InnerTest1
  18. {
  19.   public static void main()
  20.   {
  21.           China china=new China();
  22.           china.beijing.speak();
  23.   }

  24. }
复制代码
为什么以上程序不能运行?

5 个回复

倒序浏览
你要调用内部类方法就要建立内部类的对象!应该是China.BeiJing beijing=new China().new BeiJing();
回复 使用道具 举报
本帖最后由 igi9009 于 2014-4-23 17:22 编辑

问题有好几个:主函数必须写全,还有就是建立内部对象写错了,应该写成China china=new China();
          China.Beijing  bj=china.new Beijing();
          bj.speak();帮你做了点修改就能运行了,正确程序如下
  1. class China

  2. {   final String nationalAnthem="义勇军进行曲";

  3.     //Beijing beijing;                  

  4.   public China()

  5.    { China.Beijing beijing=new Beijing();

  6.     }

  7.    public String getSong()

  8.     {  return nationalAnthem;

  9.     }

  10.   public class Beijing           

  11.     {   String name="北京";

  12.         void speak()

  13.         {  System.out.println("我们是"+name+" 我们的国歌是:"+getSong());

  14.         }

  15.     }

  16. }

  17. public class InnerTest1

  18. {

  19.   public static void main(String[] args)

  20.   {

  21.           China china=new China();
  22.           China.Beijing  bj=china.new Beijing();
  23.           bj.speak();

  24.   }



  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
你内部类调用出现问题 要加上外部类名调用
回复 使用道具 举报
这个程序是很不错的,但是在InnerTest1中的主方法main中没有写public static void main(String[] args)加上其中的参数就没事了。调用内部类的了例子,还不错的。
回复 使用道具 举报
这个public class InnerTest1 {   public static void main()   {           China china=new China();           china.beijing.speak();   }  }main函数写错了,其他没什么问题public class InnerTest1 {          public static void main(String[] args) {                 China china=new China();         china.beijing.speak();// TODO Auto-generated method stub          } }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马