黑马程序员技术交流社区

标题: this关键字应用场合的疑问 [打印本页]

作者: yan5108652    时间: 2013-5-17 14:57
标题: this关键字应用场合的疑问
本帖最后由 yan5108652 于 2013-5-20 23:00 编辑

this关键字在一个类的方法里表示的是当前对象,那么类.this代表的是?
他们的区别在于哪啊?

作者: Jacky_Chen1990    时间: 2013-5-17 15:09
我是来看头像的!正好肚子饿了!!啊啊啊啊
作者: ZhaoYuBetter    时间: 2013-5-17 15:19
你说的是这种情况吧:
public class Outer {
       private int size;
       public class Inner {
              private int size;
              public void doStuff(int size) {
       size++;  // 引用的是doStuff函数的形参
       this.size++; // 引用的Inner类的成员变量
       Outer.this.size++; // 引用的Outer类中的成员变量
}
}
}

这个表示访问 内部类中外部类的 size 变量
作者: 本人已死    时间: 2013-5-17 15:24
可以这么理解this是省略了当前类的调用:当前类.this.
这样类.this. 的结构就跟上面的一个类型了,但实际貌似就是这么回事

作者: 花开花落总相似    时间: 2013-5-17 15:54
  一般在构造方法里面比较常见 还有当你区分不清楚的时候对象的时候
作者: Super_Class    时间: 2013-5-17 16:23
|——内置类中很重要的访问位置:(很重要)
                                class Outer{
                                        private int num = 3;        //访问这里用 Outer.this.num;
                                        class Inner{//这里内置类可以访问外部类的成员(方法和属性)
                                                int num = 4;        //访问这里用 this.num;   也可以用Inner.this.num;
                                                void show(){
                                                        int num = 5; //访问这里用 num;
                                                        System.out.println("show run "+Outer.this.num);
                                                }
                                        }
                                       
                                        void method(){
                                                new Inner().show();
                                        }
                                }
作者: 悟佛修道    时间: 2013-5-17 16:33
点 你就想象成 的 嘛
类.this表示 某个类的this,而this它代表对象,哪个对象去调用 它就指向哪个对象代表哪个对象。
所以类.this  就是某个类的对象的什么什么
this  就是某个对象的什么什么
作者: 潘廖明    时间: 2013-5-17 17:02
9、this关键字
        (1)this关键字代表本类对象的一个引用,谁调用this所在的方法,this就代表谁  
        (2)this的使用场景
                A:用于区分同名成员变量和局部变量;
                B:在定义函数时,该函数内部要用到调用该函数的对象时,因为此时对象还没建立,故this代表此对象
                B:构造函数间调用:这个时候,this(参数)必须作为第一条语句存在。
作者: Sword    时间: 2013-5-17 17:14
this的几点总结;

1.        this是用于区分局部变量和成员变量同名情况。
2.        this 代表它所在函数所属对象的引用。哪个对象在调用this所在的函数 ,this 就代表哪个对象。
3.        this 的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
4.        this语句用于构造函数之间进行互相调用。
5.        this语句只能定义在构造函数的第一行。
总而言之,this是指当前对象,哪个对象在调那个方法,this就代表那个对象。
作者: yan5108652    时间: 2013-5-20 22:59
ZhaoYuBetter 发表于 2013-5-17 15:19
你说的是这种情况吧:
public class Outer {       private int size;       public class Inner {         ...

谢谢你。已经理解了,就是你说的这种情况,thank you !




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