黑马程序员技术交流社区

标题: this关键字的其他用法 [打印本页]

作者: 冷月霜飞    时间: 2015-5-17 21:43
标题: this关键字的其他用法
求教师兄,this关键字的用法我知道两种,一是指调用this所在函数的对象,另一个是当局部变量与成员变量重名时,用this标识成员变量;除了这两种,this好像还有其他用法,是什么?
作者: 幸福与我零距离    时间: 2015-5-17 21:50
本帖最后由 幸福与我零距离 于 2015-5-17 21:51 编辑

1、this 语句只能定义在构造函数的第一行
2、在同意个类中调用,用this
欢迎补充

作者: 谷歌    时间: 2015-5-17 23:19
通过this调用本类构造函数。this还有个经典的比较两个对象内容是否相等的用法,其原理也是利用this代表所在函数所属对象的引用这一特点来完成的。这个用法很常用,要记住。
作者: 代码搬运1号    时间: 2015-5-17 23:43
受教了!!!
作者: 冷月霜飞    时间: 2015-5-18 09:35
谷歌 发表于 2015-5-17 23:19
通过this调用本类构造函数。this还有个经典的比较两个对象内容是否相等的用法,其原理也是利用this代表所在 ...

师兄,我对这个“this还有个经典的比较两个对象内容是否相等的用法”比较感兴趣,用this比较两个对象内容是否相等,这个怎么用?能否详细介绍?或有例子的话贴出来一个,谢谢啊!
作者: 彭越    时间: 2015-5-18 09:57
this是本类中的引用
作者: 王先荣    时间: 2015-5-18 11:36
谢谢楼上解决
作者: 谷歌    时间: 2015-5-18 12:17
冷月霜飞 发表于 2015-5-18 09:35
师兄,我对这个“this还有个经典的比较两个对象内容是否相等的用法”比较感兴趣,用this比较两个对象内容 ...

你看一下老毕的视频教程,里面有讲的
  1. public class Demo17 {
  2.         public static void main(String[] args) {
  3.                 Person1 p1=new Person1("A",30);
  4.                 Person1 p2=new Person1("B",30);
  5.                 System.out.println(p1.compare(p2));
  6.         }
  7. }
  8. class Person1{
  9.         String name;
  10.         int age;
  11.         Person1(String name){
  12.                 this.name=name;
  13.         }
  14.         Person1(String name,int age){
  15.                 this(name);
  16.                 this.age=age;
  17.         }
  18.         public boolean compare(Person1 p){
  19.                 return this.age==p.age;
  20.         }
  21. }
复制代码





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