黑马程序员技术交流社区

标题: 大家对这题怎么看,我看不懂 [打印本页]

作者: rel4x    时间: 2014-9-24 23:44
标题: 大家对这题怎么看,我看不懂
class InnerClassDemo{
        class Inner{
viod show(){
System.out.println("");       
}
        public void method(){
                this.new Inner().show();
               
        }
        public static void main(String[] args) {//static 不允许this
                This.new Inner().show();//错误,,inner类需要定义成static
        }
}
}



作者: 爽朗的菜籽    时间: 2014-9-25 09:57
你这段代码好乱啊,而且有错误。。。我改了一下是这个意思的代码吗?
  1. class InnerClassDemo
  2. {
  3.         class Inner
  4.         {
  5.             public void show()
  6.             {
  7.                     System.out.println("");        
  8.             }
  9.         }       
  10.    
  11.         public void method()
  12.     {
  13.             this.new Inner().show();   
  14.     }
  15.        
  16.     public static void main(String[] args)
  17.     {//static 不允许this
  18.         This.new Inner().show();//错误,,inner类需要定义成static
  19.     }
  20. }
复制代码

作者: 爽朗的菜籽    时间: 2014-9-25 10:06
首先 main方法是静态方法,在静态方法中是不能有 this 和 super这两个关键字的
你的代码的意思是想要在类 InnerClassDemo 的main方法中调用内部类的方法 show() 是吧
这样的话 你直接 new 一个InnerClassDemo 的对象调用 method好了
或者说你想用外部类调用内部类的对象来直接调用内部类中的方法的话
  1. new InnerClassDemo().new Inner().show();
复制代码


作者: Nullifier    时间: 2014-9-25 10:18
楼上正解




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