黑马程序员技术交流社区

标题: this的作用 [打印本页]

作者: 王营利    时间: 2012-11-12 12:25
标题: this的作用
public class NameHiding{
       private double x=0;
       public boolean set(double x) {
            if(x>0){
                   this.x=x;
                   return true;
              }else return false;
       }
       public double get() {
                 double y=x*x;
                 double x=y+1;
                 return x;
       }
}
第五句的this 到底是什么作用呀?我就知道this是java语言的保留字。
作者: 黑马_宋超    时间: 2012-11-12 12:35
this在这里的意思就是代表当前调用这个方法的对象
作者: 邢晏玮    时间: 2012-11-12 12:45
表示的是当前你要调用的那个方法对象,那个对象调用他,就表示那个对象
作者: 许坤    时间: 2012-11-12 13:17
this.x=x  表示针对当前方法的当前对象有用,出了那个循环就没意义了.
作者: 朱宏青    时间: 2012-11-12 20:58
你看 这个方法里有两个x, 第一个是这个类里的double x;还有一个是set的参数x,假如不使用this 后面那段代码就变成x=x;你觉得这个读的通么...虽然程序不会报错误 但是运行起来肯定古怪,所以java用this标示符来区分这样的情况 一般被this修饰的都是这个类的属性什么的,以免跟局部的变量混淆.
作者: 黑马吕世成    时间: 2012-11-12 21:17
this关键字有两个用法:一个是用来区分局部变量和成员变量,你的程序里面就是这个作用。一般情况下,虚拟机会先在局部中找这个变量x,如果存在那就是这个,如果不存在就去外部找,所以这里必须要加this。另外一种用法就是在构造函数中使用,用来调用构造函数,且必须为构造函数的第一个语句。
作者: 陈军    时间: 2012-11-15 10:26
this 表示当前掉用的对象。只能用于非static方法上。

this的用法: 1,用于本类构造函数间的调用。(其实是为了简化代码书写)
                 2,用于本类非静态成员函数间的调用。
                 3,用于区分局部变量和对象属性成员(同名的时候)。
                         因为当在非静态方法上访问对象属性成员,而局部变量又存在同名的变量,这时要访问对象的属性成员时,必须用this标识,
                         否则默认访问的就是该同名的局部变量。
                        ps: 如果访问的是静态属性成员,用类名标识以区分同名变量。


作者: 熊志伟    时间: 2012-11-18 20:07
学习一下
作者: 王斌    时间: 2012-11-22 10:53
this 指的是当前类,举一个例子:
public class Test{
    int i;

    public void setI(int i){
        this.i = i;
    }
}

setI()方法的参数名为i,Test类的属性也为i,所以在setI()方法中必须用this指定具体是哪一个i。

this.i 就代表了当前类(Test)的属性i。这样才可以通过setI()方法为属性初始化。




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