A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yueyebingtong 中级黑马   /  2015-3-30 21:36  /  1040 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天刚学了static关键词,很不明白为什么在静态方法里没有this关键字?有没有大神指教一下!

16 个回复

倒序浏览
因为静态是随着类的加载而加载。而this是对象创建才存在的。
回复 使用道具 举报
在创建对象之前就存在了
回复 使用道具 举报
static静态存储在方法区,在方法加载的时候就已经存在了,而this是对象创建之后才存在的,方法加载的时候没有创建对象,堆中是没有对象存在的,所以不存在this
回复 使用道具 举报 1 0
static 会随着类的加载而加载,而this是代表着对象,只有对象建立以后才会出现,所以static中不能出现this
回复 使用道具 举报
这样说吧,你应该能理解this关键字的含义吧,谁调用了对象,那么this就是谁,那么问题答案就出来了
static修饰的东西是随着类的加载而加载的,也就是一用到类,静态就已经加载完成了,这个时候还没有对象,那this指向谁?很明显,这个时候的this是没有任何指向的,所以statia修饰的的方法没有this关键字
回复 使用道具 举报
JAVA中一般分为4个内存区域;
   1、栈内存空间:存储引用的堆内存空间地址
   2、堆内存空间:存储每个对象具体的属性值
   3.全局数据区;保存static类型的属性
   4、全局代码区:保存所有的方法定义
回复 使用道具 举报
静态优先于 对象存在  .this代表当前对象的引用,对象都没创建当然就用不成对象啦..呜^找不到对象^^
回复 使用道具 举报
首先你的弄懂this ,this代表对象,静态优先于对象存在。
回复 使用道具 举报
顶一下~~~
回复 使用道具 举报
this是要創建對象才會存在的,靜態是隨著類的加載而存在
回复 使用道具 举报
当类的加载时,static就存在了,只有创建对象后,this才有,类加载时没有创建对象,所以没有this,而且当我们创建了对象时,this则表示,谁调用了它,this就指代谁

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1 很给力!

查看全部评分

回复 使用道具 举报 1 0
静态方法是随着类的加载而加载的,可以用类名直接调用,也叫静态绑定,this是对象建立才有的,谁调用,this就代表谁,也叫动态绑定。
回复 使用道具 举报
静态是随着类的加载才会有,this是对象创建后才有的。
回复 使用道具 举报
通俗点说,静态是哥哥,this是弟弟,哥哥出生了,弟弟还没出生呢。
回复 使用道具 举报
静态是先于对象而存在的,而this、super都是一定要有对象才行的。
回复 使用道具 举报
静态是所有对象所共享的属性,随类的加载就存在,可以不创建对象就调用。而this是指本类对象在本类中调用其它成员,super是父类内存的空间标识,都必须有实例对象才能使用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马