黑马程序员技术交流社区

标题: 内部类问题,能编译成功,无法运行,求原因 [打印本页]

作者: 马州州    时间: 2012-7-20 23:25
标题: 内部类问题,能编译成功,无法运行,求原因
本帖最后由 马州州 于 2012-7-20 23:41 编辑
  1. class Outer
  2. {
  3. private int x = 3;
  4. class Inner
  5. {
  6. int x = 4;
  7. void function()
  8. {
  9. int x = 6;
  10. System.out.println("inner:"+Outer.this.x);
  11. }
  12. }
  13. void method()
  14. {
  15. Inner in = new Inner();
  16. in.function();
  17. }
  18. }



  19. class InnerClassDemo
  20. {
  21. public static void main(String[] args)
  22. {
  23. //直接访问内部类中的成员
  24. Outer.Inner in = new Outer().new Inner();
  25. in.function();

  26. }
  27. }
复制代码
运行结果如图
我看不出来代码哪里错了
帮我看下吧

作者: 马州州    时间: 2012-7-20 23:33
陶锋 发表于 2012-7-20 23:31
楼主,你的内部类分家了。本来是InnerClassDemo,你硬要弄个空格把它们活生生拆散。 ...

没有明白你什么意思啊,能说的明白点么?
作者: 张立江    时间: 2012-7-20 23:39
你在doc命令行打的是 java Inner ClassDemo   中间多了个空格
作者: 马州州    时间: 2012-7-20 23:40
这。。。。把注意力全放在代码上了,没注意doc命令上打错了,纠结了这么久,囧啊~~~
作者: 黑马高明辉    时间: 2012-7-20 23:45
这么写:
package testSomething;
class Outer

{

private int x = 3;

class Inner

{

int x = 4;

void function()

{

int x = 6;

System.out.println("inner:"+Outer.this.x);

}

}

void method()

{

Inner in = new Inner();

in.function();

}
public static void main(String[] args)
{

//直接访问内部类中的成员

Outer.Inner in = new Outer().new Inner();

in.function();


}

}




class InnerClassDemo

{



}
main函数放错地方了

作者: 马州州    时间: 2012-7-20 23:48
黑马高明辉 发表于 2012-7-20 23:45
这么写:
package testSomething;
class Outer

我的代码木有错。。。。。。是我在dos运行的时候打错类名了。。。。
作者: 黑马高明辉    时间: 2012-7-20 23:49
马州州 发表于 2012-7-20 23:48
我的代码木有错。。。。。。是我在dos运行的时候打错类名了。。。。

恩,对,我想错了……
作者: 龚建锋    时间: 2012-7-20 23:49
第一眼看到那错误,还以为是classpath配置的问题,二楼真是火眼真睛啊~~呵呵
作者: 王龙彪    时间: 2012-7-20 23:49
复制楼主代码后,第三行的 ; 是中文的
改正后的运行结果是:
inner:3




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