黑马程序员技术交流社区

标题: static问题 [打印本页]

作者: yueyebingtong    时间: 2015-3-30 21:36
标题: static问题
今天刚学了static关键词,很不明白为什么在静态方法里没有this关键字?有没有大神指教一下!
作者: Dyna    时间: 2015-3-30 21:57
因为静态是随着类的加载而加载。而this是对象创建才存在的。
作者: 青岛_黑马    时间: 2015-3-30 21:59
在创建对象之前就存在了
作者: 小七的    时间: 2015-3-30 22:27
static静态存储在方法区,在方法加载的时候就已经存在了,而this是对象创建之后才存在的,方法加载的时候没有创建对象,堆中是没有对象存在的,所以不存在this
作者: 幕丶落    时间: 2015-3-30 22:38
static 会随着类的加载而加载,而this是代表着对象,只有对象建立以后才会出现,所以static中不能出现this
作者: luoyu1530    时间: 2015-3-30 22:45
这样说吧,你应该能理解this关键字的含义吧,谁调用了对象,那么this就是谁,那么问题答案就出来了
static修饰的东西是随着类的加载而加载的,也就是一用到类,静态就已经加载完成了,这个时候还没有对象,那this指向谁?很明显,这个时候的this是没有任何指向的,所以statia修饰的的方法没有this关键字
作者: tubao1991    时间: 2015-3-30 22:46
JAVA中一般分为4个内存区域;
   1、栈内存空间:存储引用的堆内存空间地址
   2、堆内存空间:存储每个对象具体的属性值
   3.全局数据区;保存static类型的属性
   4、全局代码区:保存所有的方法定义
作者: 山里孩子    时间: 2015-3-30 22:46
静态优先于 对象存在  .this代表当前对象的引用,对象都没创建当然就用不成对象啦..呜^找不到对象^^
作者: 勇闯☀☀黑马    时间: 2015-3-30 23:29
首先你的弄懂this ,this代表对象,静态优先于对象存在。
作者: @G00DMaN    时间: 2015-3-30 23:39
顶一下~~~
作者: 大神在何方    时间: 2015-3-30 23:53
this是要創建對象才會存在的,靜態是隨著類的加載而存在
作者: smile2015    时间: 2015-3-31 01:09
当类的加载时,static就存在了,只有创建对象后,this才有,类加载时没有创建对象,所以没有this,而且当我们创建了对象时,this则表示,谁调用了它,this就指代谁
作者: minliang    时间: 2015-3-31 09:26
静态方法是随着类的加载而加载的,可以用类名直接调用,也叫静态绑定,this是对象建立才有的,谁调用,this就代表谁,也叫动态绑定。
作者: 千玉屑    时间: 2015-3-31 10:42
静态是随着类的加载才会有,this是对象创建后才有的。
作者: 12300123    时间: 2015-3-31 17:38
通俗点说,静态是哥哥,this是弟弟,哥哥出生了,弟弟还没出生呢。
作者: natsu647    时间: 2015-3-31 20:37
静态是先于对象而存在的,而this、super都是一定要有对象才行的。
作者: leonard    时间: 2015-3-31 21:48
静态是所有对象所共享的属性,随类的加载就存在,可以不创建对象就调用。而this是指本类对象在本类中调用其它成员,super是父类内存的空间标识,都必须有实例对象才能使用




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