黑马程序员技术交流社区

标题: 关于静态中的this [打印本页]

作者: 二月的雨    时间: 2014-11-22 21:07
标题: 关于静态中的this
java "静态的方法不能存取“this”所引用的对象。"该怎么理解这句话呢?是静态的方法不能引用“this”所引用的对象吗?

作者: 依米阳光    时间: 2014-11-22 21:17
this代表当前对象。而静态方法是通过类名加点调用,不用创建对象就可以使用,所有在使用静态方法的时候可以不存在当前对象,所有不能使用this。
作者: 苏铭    时间: 2014-11-22 21:26
this代表当前对象。静态方法在内存中是优先于对象存在的,在加载类文件后静态方法就存在了,而对象的要在调用new来创建时才开辟内存的空间,也就是这是this引用才存在,所以静态的方法不能存取“this”所引用的对象
作者: 壹贰叁    时间: 2014-11-23 02:22
this 代表者当前对象
静态方法可以被类名所调用如:
Person.say();
假设静态方法里有this存在。那么this现在就没有指向任何对象,方法还调用它,肯定出错。
作者: 丑小子799    时间: 2014-11-23 03:48
静态方法中不能使用this调用对象
作者: cbb    时间: 2014-11-23 09:04
因为静态是先存在的。
作者: 1103--英伦风格    时间: 2014-11-23 09:13
static修饰的方法是随着类的加载而加载,再类加载的时候,还没有创建对象,,this在静态方法中存在的话,就表示该类已经存在对象了。
作者: 金福林    时间: 2014-11-23 09:51
首先你要明白对象和类的区别。
this是属于对象范畴的东西,而静态方法是属于类范畴的东西
所有的成员方法,都有一个默认的的参数this(即使是无参的方法),只要是成员方法,编译器就会给你加上this这个参数
而静态方法与对象无关,根本不能把对象的引用传到方法中,所以不能用this
在一个类中定义一个方法为static,则为静态方法,那就是说,无需本类的对象即可调用此方法,调用一个静态方法就是“类名.方法名”




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2