去看thinking in Java吧,里面有详细的解释

解决方案 »

  1.   

    你先理解this是什么,然后理解静态方法与非静态方法的区别,然后你大概能理解为什么不能调用了。this是指当前对象,静态方法是通过类调用的方法,不需要实例化,既然不需要实例化,就没有当前对象,既然没有当前对象那怎么会有this呢?其实对于你这个问题,我是不太想回答的,因为你java根本还没学明白,我回答得再仔细你也未必明白。
      

  2.   

    静态方法不属于任何对象,是共有的,所有不能有代表某个对象的this
      

  3.   

    如果能用,那你说这个this对应什么样的对象?
    public class Test {
    private int a;private Test(int n) {
      a = n;
    }public static void x() {
      this.a = 0 ;//如果可以你觉得这里的this.a原来是什么值?是否与y中指向同一个对象?是否运行构造函数?}public static void y() {
      this.a = 1 ;
    }因为this.a根本无法确定到底怎样解释,所以静态方法中不允许使用this
      

  4.   

    在静态方法里。访问类中的静态方法和属性。有类名. else new 类名().
      

  5.   

    static 方法中只能引用方法外的static变量和方法 
    this 不是 static类型的
      

  6.   


    我们用大腿想一想
    this是要new出来的
    static是不用new的
    就是当你static存在的时候
    那个this没有new
    是不存在的
      

  7.   

    main 是static吧,那this和super不能在static中使用啊!因为没有new出来 那this当然不好使了。static无需实例化的。
      

  8.   

    this是指调用当前方法的对象,而静态方法不属于任何对象。
      

  9.   

    this是指当前类的实例,而静态方法中不能调用非静态的东西
      

  10.   

    this引用当前对象,但是static方法并不依赖某个对象,通俗点就是类方法,并不需要创建对象就可以调用的。而this没有对象就根本不存在,你让方法怎么执行,所以思想上就错误了。