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

this能否调用static修饰的类变量和类方法呢?
书上说this只能调用实例变量、实例方法和构造方法,不能调用局部变量。求高手指教。

------解决方案--------------------
“this不能调用类变量和类方法”那你为什么觉得这句话是错的呢?
------解决方案--------------------
this在类中指的是当前的对象,如果你类的实例化的对象可以调用的东西,this也可以调用。
如果你写了一个静态方法,则这个静态方法在类运行时,在内存中独占一块,它部属于任何特定的对象,它只属于当前类的..所以说在静态方法中使用this是 错误的,因为它只局限于具体的类的对象
------解决方案--------------------
this是可以调用静态方法及静态域的,但这种用法不好,容易让人误解,eclipse中会有warning:
"The static field xxClass.xxVariable should be accessed in a static way"
"静态域 某类.某域 应该以静态的方式访问"

同时在静态方法中不能使用this关键字,eclipse中提示error:
"Cannot use this in a static context"
"不能在静态语境(就是静态的代码块)中使用this关键字"