this = null; 为什么有语法错误???

解决方案 »

  1.   

    变量才能放在"="左边...顺便说一句,你不觉得"this = null"有种自杀的感觉嘛?
      

  2.   

    this =  null;你的标点符号是中文格式下的";"--";"
      

  3.   

    刚才,在机器上试了一下,从出错的提示来看,this指针由于是个常量,所以不能用于左运算数。
    至于为什么this是个常量,这个也不得而知。
      

  4.   

    this是对当前对象的引用,肯定是常量了
      

  5.   

    this是对当前对象的引用,肯定是常量了?为什么这么肯定?当前对象也可以指向其他的地址。
      

  6.   

    this是在非静态方法中使用的,就是调用方法的对象的引用.(就是书上说的隐式参数)
    方法将其存在自己的局部变量区的第一个位置.用javap打开class文件,然后看看非静态方法的指令集.会经常看到一个指令aload_0
    这个"0"这个位置实际上就是this.虚拟机指令只能读取他,不能改变他.
    与其说"不可以改变"不如说"没有办法改变"
      

  7.   

    楼上的说得很专业,换通俗的说法就是this它是个特别的引用.它由系统产生,同时也规定了系统操作它的权限,至于为什么要这么规定我想就像上面有人说到的.如果你可以对它赋NULL的话,就是有点自杀的味道了
      

  8.   

    bit1010(因为学无止境所以更要努力学) ( ) 信誉:100  2007-9-3 17:12:48  得分: 0  
       
    this是对当前对象的引用,肯定是常量了?为什么这么肯定?当前对象也可以指向其他的地址。————————————————————————————————————————————————
    当前对象可以指向其它地址吗?How?
    试试看 this = 什么东西能成功呢?
      

  9.   

    bit1010(因为学无止境所以更要努力学) 
    如果你是说的Object o = new Object();
    o = new Object();这种情况的话,那么。这里o的确是指向了两个对象,但这里o本身不是对象,o只是一个引用而已,用C++的话来说,是一个指针常量。new Object() = new Object()总不能成功吧!
      

  10.   

    好像在继承中有种用法.   
    class superx{
             int i;
    }
    class subx extends superx{         public void test(){
                   int i=superx.this.i;}
    }
      

  11.   

    this是只读的~~~这样讲简单了吧~~~
      

  12.   

    用javap打开class文件,然后看看非静态方法的指令集.会经常看到一个指令aload_0
    这个"0"这个位置实际上就是this.
      

  13.   

    this是一个指向类变量的指针,你这样用当然不行了
      

  14.   

    因为this是个指针啊..
    是一个地址,..
    就像C++里的指针地址一样..
    地址怎么能付值呢??
      

  15.   

    this 代表的是自己,是一个确实存在的对象,是不能为null的。this = null就像:A问:B,你睡着了吗?
    B说:嗯,睡着了。this已经存在了,怎么能是空呢?
    B已经睡着了,怎么还能回答呢?
      

  16.   

    this是指向对象本身的一个指针当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。this = null ;就像是某人(对象)就没有名字一样,大家只知道有这么个人(对象),但是你是谁?总不能说:“我就是我”吧! 当你在单位工作时主管调用你来做事,总该喊个名字(指针)吧!