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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄诗宾 高级黑马   /  2013-3-18 23:24  /  3220 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄诗宾 于 2013-3-19 15:02 编辑

this关键字代表什么?
哪位大大解释的通俗易懂点 不太理解

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-19 07:55

评分

参与人数 1黑马币 +12 收起 理由
黄玉昆 + 12

查看全部评分

7 个回复

倒序浏览
his关键字表示的是“当前对象”,当出现在类的实例方法中,代表的是调用该方法的对象;当出现在类的构造方法中时,代表的是调用该构造方法创建的对象。在下列两种情况下,必须使用this:
方法的形式参数与类的成员变量同名:
例如:
class Person{
String name;
int age;
public Person(String name, int age){
this.name=name;
this.age=age;
}
}

一个类中的构造器调用同一个类中的另一个构造器:
调用的方法:
this([参数列表]) //处于构造器的第一行位置上
例如:
class Person{
String name;
int age;
public Person(String name){
this.name=name;
}
public Person(String name, int age){
this(name);         //调用另一构造器,必须放在第一条语句位置上
this.age=age;
}
}

不知你可不可以理解

评分

参与人数 1黑马币 +12 收起 理由
黄玉昆 + 12

查看全部评分

回复 使用道具 举报
一句话:this变量代表对象本身。
this关键字主要有三个应用:
  一、this调用本类中的属性,也就是类中的成员变量。
  二、this调用本类中的其他方法;
  三、this调用本类中的其他构造方法,调用时要放在构造方法的首行。
希望对你有帮助~

评分

参与人数 1黑马币 +12 收起 理由
黄玉昆 + 12

查看全部评分

回复 使用道具 举报
this关键字表示的是“当前对象”,当出现在类的实例方法中,代表的是调用该方法的对象;当出现在类的构造方法中时,代表的是调用该构造方法创建的对象。

This关键字的使用,包括引用成员变量、调用类的构造方法等知识。

一般情况下,在Java语言中引用成员变量或者成员方法都是以对象名.成员变量或者对象名.成员 方法的形式。不过有些程序员即使在没有相同变量的时候,也喜欢使用this.成员变量的形式来引用变量 。这主要是从便于代码的阅读考虑的。

this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的饮用。如在 代码中,可以使用return this,来返回某个类的引用。此时这个this关键字就代表类的名称。

评分

参与人数 1黑马币 +9 收起 理由
黄玉昆 + 9

查看全部评分

回复 使用道具 举报
this关键字:用于区分局部变量和成员变量同名的情况,代表它所在函数所属对象的引用。
也就是哪个对象在调用this所在的函数,this就带表哪个对象。
this的应用:当定义类中功能时,该函数内部要用到该函数的对象时,这时就用this来表示这个对象
但凡本类功能内部使用本内对象时,都用this表示。
  1. class Person
  2. {
  3.         private String name;
  4.         private int age;
  5.         Person(int age)
  6.         {
  7.                 this.age = age;//这里的this用于区分成员变量和局部变量
  8.         }
  9.         Person(String name)
  10.         {
  11.                 this.name = name;
  12.         }
  13.         Person(String name,int age)
  14.         {
  15.                 this.name = name;
  16.                 this.age = age;
  17.         }
  18.         public void speak()
  19.         {
  20.                 System.out.println("name="+this.name+"...age="+this.age);
  21.                 this.show();//this可以省略不写
  22.         }
  23.         public void show()
  24.         {
  25.                 System.out.println(this.name);//this可以省略不写
  26.         }
  27.         //需求:给人定义一个用于比较年龄是否相同的功能。
  28.         public boolean compare(Person p)
  29.         {
  30.                 return this.age==p.age;//this代表b1,
  31.         }                      //哪个对象调用compare函数就代表哪个对象
  32. }
  33. class PersonDemo3
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.         Person p1 = new Person(20);
  38.                 Person p2 = new Person(25);
  39.                 boolean b = p1.compare(p2);
  40.                 System.out.println(b);
  41.         //Person p = new Person("lisi");
  42.                 //p.speak();       
  43.         }
  44. }
复制代码
this关键字在构造函数中的应用
this语句 :用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
  1. class Person
  2. {
  3.         private String name;
  4.         private int age;
  5.         {
  6.                 System.out.println("年龄");
  7.         }
  8.         Person()
  9.         {
  10.                 System.out.println("姓名");
  11.         }
  12.         Person(String name)
  13.         {
  14.                 this();
  15.                 this.name =name;
  16.         }
  17.         Person(String name,int age)
  18.         {
  19.                 this(name);//this调用构造函数必须放在第一行。因为初始化要先执行
  20.                 this.age = age;       
  21.         }
  22. }
  23. class  PersonDemo4
  24. {
  25.         public static void main(String[] args)
  26.         {
  27.                 Person p = new Person("lisi",30);
  28.         }
  29. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

有一句很通俗的理解就是,哪个对象调用 this 所在的函数 this就代表哪个对象!
还要记住一点:他是因为对象的存在才存在的,没有对象就不能有this;所以静态中不允许有this;因为被静态修饰的比对象先被加载进内存!

通俗点就是::先进内存的不能调用后进内存的!

其他关于用法 楼上的各位哥们 都已经讲的很详细了!

评分

参与人数 1黑马币 +9 收起 理由
黄玉昆 + 9

查看全部评分

回复 使用道具 举报
this关键字除了在构造函数中调用其他构造函数以外,还可以当做一个引用来使用。其用于方法中,哪个对象调用该方法,this就引用哪个对象。例如:

方法中局部变量和成员变量重名,我们想调用成员变量时就可以使用this.变量名形式访问成员变量。
在方法中要将调用该方法的对象作为参数传递给另一个方法时,可以将this作为实参传给该方法。
在内部类中访问外部类的成员时,需要使用外部类名.this.成员名形式访问。

评分

参与人数 1黑马币 +9 收起 理由
黄玉昆 + 9

查看全部评分

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