日期:2014-05-20  浏览次数:20743 次

关于在STATIC 方法中的this问题
为什么在STATIC   方法中不能用this.



  public   class   outer{
        public   static   void   main(String[]   args){
                    inner   a   =   new   inner();//   not   right?
                  outer.inner   b   =   new   outer().inner();//只能   这样实例化                  
                                                                                      //一个inner   class对象
                  }
          class   inner{}
            public   void   method(){
            inner   a   =   new   inner();//right
                  }
              }


为什么在STATIC   方法中不能用this.???????



------解决方案--------------------
this是当前对象的引用

static的东西不属于任何一个对象,又如何使用this呢?
------解决方案--------------------
原因如一楼

类是抽象的,没有这个具体的东西,对象、实例是具体的
相当于 "人 "与 "你 "的关系,没有 "人 "这个具体的东西,但是有 "你 "这个 "人 "

楼主没理解类与对象的关系
------解决方案--------------------
同意楼上所有意见,建议楼主好好看看基础。^_^
------解决方案--------------------
类理解为一个类别的事物,比如人,猪,马,电脑,网站.
对象可以理解为一个实例吧? 梦幻西游-湖北1区-昭君台-ID:9114273
或者 http://community.csdn.net/

------解决方案--------------------
最简单的理解办法,一个内部类,实际上就相当于一个类的方法(这种说法可能不太恰当),我是说它的存在就像是外部类的一部分,而main方法是静态的,那么,在静态的方法中只能引用静态的变量或方法,这个问题中,main方法是类中的一部分,而创建的内部类对象却不是静态的,所以不能被引用
------解决方案--------------------
还是要多看看书。其实书上已经说得非常清楚了