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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王营利 中级黑马   /  2012-11-12 12:25  /  2700 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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语言的保留字。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

8 个回复

正序浏览
王斌 中级黑马 2012-11-22 10:53:31
9#
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()方法为属性初始化。
回复 使用道具 举报
学习一下
回复 使用道具 举报
陈军 中级黑马 2012-11-15 10:26:39
7#
this 表示当前掉用的对象。只能用于非static方法上。

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

回复 使用道具 举报
黑马吕世成 来自手机 中级黑马 2012-11-12 21:17:46
地板
this关键字有两个用法:一个是用来区分局部变量和成员变量,你的程序里面就是这个作用。一般情况下,虚拟机会先在局部中找这个变量x,如果存在那就是这个,如果不存在就去外部找,所以这里必须要加this。另外一种用法就是在构造函数中使用,用来调用构造函数,且必须为构造函数的第一个语句。来自: Android客户端

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
你看 这个方法里有两个x, 第一个是这个类里的double x;还有一个是set的参数x,假如不使用this 后面那段代码就变成x=x;你觉得这个读的通么...虽然程序不会报错误 但是运行起来肯定古怪,所以java用this标示符来区分这样的情况 一般被this修饰的都是这个类的属性什么的,以免跟局部的变量混淆.

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
this.x=x  表示针对当前方法的当前对象有用,出了那个循环就没意义了.

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
邢晏玮 来自手机 中级黑马 2012-11-12 12:45:30
藤椅
表示的是当前你要调用的那个方法对象,那个对象调用他,就表示那个对象来自: Android客户端

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
this在这里的意思就是代表当前调用这个方法的对象

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马