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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马如龙 中级黑马   /  2014-6-12 19:44  /  1444 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Outer
  2. {
  3.         private static  int x = 3;

  4.        
  5.         static class Inner//静态内部类
  6.         {
  7.                 static void function()
  8.                 {
  9.                         System.out.println("innner :"+x);
  10.                 }
  11.         }

  12.         static class Inner2
  13.         {
  14.                 void show()
  15.                 {
  16.                         System.out.println("inner2 show");
  17.                 }
  18.         }

  19. }


  20. class  InnerClassDemo2
  21. {
  22.         public static void main(String[] args)
  23.         {
  24.                 new Inner2().show();

  25.         }
  26. }
复制代码


InnerClassDemo2.java:29: 错误: 找不到符号
                new Inner2().show();
                    ^
  符号:   类 Inner2
  位置: 类 InnerClassDemo2
1 个错误

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

8 个回复

倒序浏览
  1. // new Outer.Inner2().show(); //直接匿名访问
  2. Outer.Inner2 o = new Outer.Inner2(); //创建对象o
  3. o.show(); // 对象o调用show()方法
复制代码
回复 使用道具 举报

谢谢,学的不错啊
回复 使用道具 举报
嗯,楼上说的对。这里在小结一下:
外部其他类访问内部类成员的格式:
当内部类定义在成位置时
      1,非私有,非静态——————可以在外部其他类中直接创建此内部类的对象,然后调用内部类中成员
                                          格式:外部类名.内部类名  变量名 = 外部类对象.内部类对象;
      2,非私有,静态———————(1)访问内部类中非静态成员:如:new Outer.Inner2().show();
                                                          (2)访问内部类中静态成员(直接类名调用):如:Outer.Inner.show2();
代码如下:
  1. class Outer
  2. {
  3.             static class Inner2//静态内部类
  4.         {
  5.                 void show()//非静态方法
  6.                 {
  7.                         System.out.println("inner2 show");
  8.                 }
  9.                                 static void show2()//静态方法
  10.                                 {
  11.                                         System.out.println("显示2");
  12.                                 }
  13.         }

  14. }

  15. class  InnerClassDemo2
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                                 new Outer.Inner2().show();

  20.                                 Outer.Inner2.show2();
  21.         }
  22. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 2 0
回复 使用道具 举报
外部类的对象都没有建立,怎么调用内部类啊....
回复 使用道具 举报
学习了 ,这些基础
回复 使用道具 举报
领教了,学习了!!!!!
回复 使用道具 举报
1L 2L回答都很完整了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马