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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rel4x 中级黑马   /  2014-9-24 23:44  /  783 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
        }
}
}


3 个回复

倒序浏览
你这段代码好乱啊,而且有错误。。。我改了一下是这个意思的代码吗?
  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. }
复制代码
回复 使用道具 举报
首先 main方法是静态方法,在静态方法中是不能有 this 和 super这两个关键字的
你的代码的意思是想要在类 InnerClassDemo 的main方法中调用内部类的方法 show() 是吧
这样的话 你直接 new 一个InnerClassDemo 的对象调用 method好了
或者说你想用外部类调用内部类的对象来直接调用内部类中的方法的话
  1. new InnerClassDemo().new Inner().show();
复制代码

回复 使用道具 举报
楼上正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马