我是java菜菜,谁帮我解释下下面这代码为什么this报错:public class T0
{
int i = 0;
public static void main(String[] args)
{
System.out.println(this.i);
}}是this不能引用入口类吗?this只能存在于heap中?

解决方案 »

  1.   

    对。this 不能用在Static环境
      

  2.   

    入口类的成员变量到底是在stack还是data seg?
      

  3.   

    Cannot use this in a static context
      

  4.   

    静态方法里面不能用this关键字
    只能同过实例化类名的引用打点调用方法和属性
      

  5.   

    T0 t=new T0();
    t.i;
    这样
      

  6.   

    在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.
    因为this代表指向自己对象的引用,而静态方法是属于类的,不属于对象,其成功加载后,对象还不一定存在,
    即使存在,也不知道this指的是哪一个对象.
      

  7.   


    什么是入口类?你是不是想说入口函数?
    this表示的是当前的对象,而static 属于整个类,所以在static方法中用this行
    不同。
      

  8.   

    this表示的是当前的对象,而static 属于整个类,所以在static方法中用this行 
    不同。OK!!!
      

  9.   

    你这个方法是static的,static和类是脱离关系的,this不能代表当前类
      

  10.   

    this 是实例的引用,不能在静态的方法中调用。
      

  11.   

    this不能用在静态方法中,因为this 是代表当前对象,但是静态方法中不需要对象就可以调用,直接通过类名.调用就行,根本就没有对象。
      

  12.   

    静态方法只能处理静态的变量,加上this是某个对象的变量了,所以会报错。
      

  13.   


    public class T0 

    int i = 0; 
    public static void main(String[] args) 

    System.out.println(T0.i); 
    } } 
      

  14.   

    因为main方法是static,this 不能用在Static环境
      

  15.   

    static是属于类的... 不是对象的
      

  16.   

    "this 不能用在Static环境"正解
      

  17.   

    都么有一个对象,this指向谁呢,所以就出错喽!!
      

  18.   

    this 包含不确定因素,而static是确定因素. 不确定因素可以调用确定因素,反过来确定因素就不可以调用不确定因素.
      

  19.   

    静态方法中不能使用非静态变量或者方法!
    public class T0 

    int i = 0; 
    public static void main(String[] args) 

    TO to=new TO();
    System.out.println(to.i); 
    } } 
      

  20.   

    静态成员不能调非静态成员!this 当前对象
    static就是为了不用创建实例就能访问,开发JAVA的人员费好大劲才想出来de !
    多不容易啊!
    你偏添个this,历史倒退了呀!
    初学者可以理解,其他人不能犯类似的错误
      

  21.   

    呵呵,大家的热情太让我感动了,非常感谢,我以前学C的,前段时间学了数据库现在开始java了。
    以后大家一起加油~
      

  22.   

    在JAVA里,静态语句块中不能引用非静态的东西