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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

求详解啊,解释一下对象

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1

查看全部评分

10 个回复

倒序浏览
静态类随着类的加载而加载,先于对象存在,而this是调用对象,你想想这种逻辑对吗???。。。当然就不可以用啦

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1 磊哥,给你分了奥

查看全部评分

回复 使用道具 举报
因为this是个引用,哪个对象调用方法就引用哪个对象。 而静态方法有可能不是被对象调用的,this无从引用。

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 殇_心。 于 2013-4-27 08:25 编辑

this关键字:代表本类对象,代表它所在函数所属对象的引用
            哪个对象在调用this所在的函数,就代表哪个对象
静态方法随着类的加载而加载,先于对象存在。
所以this是不可能出现在静态方法中的。
差点被误解了。。
static是不能修饰类的(除内部类在成员位置上)。 只能修饰成员变量或成员函数。

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
this是对象的专用关键字,指的是当前对象的引用。我们要使用对象肯定是现有类才能使用对象,而静态类是随着类的加载而加载,且在对象创建之前加载,所以你在静态类中是使用不了this的,静态前,对象后,你让一个已经存在的东西去调用一个还没来得及创建的东西,是肯定不行的,就好像有人给你西瓜,但是西瓜都还没在你手上,你吃什么?

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
this相当于当前对象的一个指针,静态方法随着类的加载而加载,先于对象,所以this不可能存在

评分

参与人数 1技术分 +1 收起 理由
王怀亮 + 1

查看全部评分

回复 使用道具 举报
breeze 中级黑马 2013-4-26 22:26:08
7#
this指的是某个对象, 静态方法和静态内部类是在类加载的时候就随之创建的, 在类对象创建之前就存在的, 当在类内遇到同名的局部属性, 为了区分类属性和局部的, 这时候用this.成员属性, 用于区分成员和局部
回复 使用道具 举报
比如说:
public class A
{
int a;
int b;
A(int a,int b){
this.a=a;
this.b=b;
}
}
注意两个a或b是不一样的
回复 使用道具 举报
本帖最后由 sos3542 于 2013-4-27 16:35 编辑

this指的是本身~~谁调用this就会指向谁~
this只在成员变量重名时候使用。
静态方法随着类的加载而加载,先于对象存在~
回复 使用道具 举报
以下几楼的学员已经回答的很详细,如果感觉没有问题了,麻烦把帖子改为“已解决”
回复 使用道具 举报
this:代表对象,就是所在函数所属对象的引用。
在定义功能时,该功能内部使用到了该功能的对象,这时就用this来表示这个对象。
this还可以用于构造函数间的调用。
调用格式:this(实际参数);
this对象后面跟上.  调用的是成员属性和成员方法(一般方法)
this对象后面跟上() 调用的是本类中的对应参数的构造函数
注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败
静态方法中不能使用this,super关键字。
因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马