黑马程序员技术交流社区
标题:
为什么静态方法中不能存在this关键字?
[打印本页]
作者:
939676244
时间:
2013-9-30 14:32
标题:
为什么静态方法中不能存在this关键字?
如题:为什么静态方法中不能存在this关键字?
作者:
请叫我马里奥
时间:
2013-9-30 15:02
静态方法是随着类的加载而加载的,这个时候还没有对象呢,this是当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。简单的说就是静态方法先对象存在,而this就代表一个对象
作者:
小痞痞
时间:
2013-9-30 15:53
因为静态优先于对象存在。所以静态方法中不可以出现this。
静态时随着类的加载就已经加载了,而对象是声明的时候才会生成对象
this只能存在非静态的构造函数中
被static修饰的将会放在方法区或者叫共享区 被这个类所共享
作者:
王飚
时间:
2013-9-30 20:05
this默认指的是本方法被目前调用的对象,在内存空间中静态方法在一个单独的静态方法区中,当本类被加载的时候,先是加是加载静态方法区中的静态内容,这个时候,内存的堆中还没有对象的建立,不存在对象,所以,不能在静态方法中,使用this,因为这时向对象的指向没有意义。
作者:
马晓平
时间:
2013-10-30 00:54
因为this是个引用,哪个对象调用方法就引用哪个对象。 而静态方法有可能不是被对象调用的,this无从引用。
静态方法是存放在内存中的数据段里,this和super调用的是堆空间里的应用对象不能调用数据段区域里的数据,因此静态方法中不能用this和super关键字
静态方法和静态类不属于单个对象,而是类的所有对象共享使用
而this代表当前对象
在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.
因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在
作者:
cuilitang
时间:
2013-10-31 14:32
因为静态优先于对象存在。所以静态方法中不可以出现this。
作者:
简★零度
时间:
2013-11-7 19:02
静态随着类的加载而加载,这时还没有对象,那就没有this这一说。
作者:
徐鹏跃
时间:
2013-11-17 18:55
静态方法先于于对象创建之前就运行,那时还没有对象呢,所以不能this关键字。
作者:
time_out
时间:
2013-12-7 19:12
this表示当前对象,而静态方法是在类加载时加载的,还没有创建对象!
作者:
灵枫
时间:
2014-1-12 01:17
因为this代表一个对象,静态存在了,但是对象还没存在,所以用this是没事找事干。
作者:
hadfs
时间:
2014-6-15 23:26
因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在
作者:
liuzhiyong0718
时间:
2014-7-1 15:38
因为静态优先于对象存在。所以静态方法中不可以出现this。
静态时随着类的加载就已经加载了,而对象是声明的时候才会生成对象
this只能存在非静态的构造函数中
被static修饰的将会放在方法区或者叫共享区 被这个类所共享
作者:
沉默的枪刺
时间:
2014-10-9 00:33
看到回答问题,使我受益匪浅!
作者:
wangshuying
时间:
2014-11-4 17:13
静态方法在对象建立之间就存在的,this代表的是本类对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2