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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 画了一个圈儿 中级黑马   /  2014-8-24 14:26  /  1387 人查看  /  10 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

this关键字有两个作用:
1、 用于区分局部变量和成员变量同名情况
2、 用于构造函数间的调用
区分局部变量和成员变量同名:
       this代表所在函数所属对象的引用。
       简单说,哪个对象在调用this所在的函数,this就代表哪个对象
       classPerson
{
       String name;
       int age;
       Person(String name, inta)
       {
              this.name = name;         //将参数中的name赋给所属对象的name。此处的this代表调用Person(String name, int a)的对象
              age = a;
              System.out.println("name="+name+",,age="+age);
       }
       }
当定义类中功能时,该函数内部要用到调用该函数的对象时,用this来表示这个对象。
       但凡本类功能内部使用到了本类对象,都用this表示。
class Person
{
       String name;
       int age;
       Person(){}
       Person(int a)
       {
              age = a;
              System.out.println("name="+name+",,age="+age);
       }
       //需求:给人定义一个比较年龄是否相同的功能,即判断是否为同龄人
       public booleancompare(Person p)
       {
              returnthis.name==p.name;
       }
}
class  PersonDemo3
{
       public static voidmain(String[] args)
       {
              Person p1 = newPerson(20);
              Person p2 = newPerson(21);
              boolean b =p1.compare(p2);
              System.out.println("Sameage:"+b);          //Same age:false
       }
}
构造函数间的调用:
this语句只能定义在构造函数的第一行,因为初始化要先执行。
class Person
{
       String name;
       int age;
       Person(){}      
       Person(String name)
       {
              this();                    //调用构造函数Person();
              this.name = name;
       }
       Person(String name, intage)
       {
//this.name = name;        /*是给this.name进行赋值,它的功能已经定义在构造函数Person(Stringname)中,
                      因此,也可以通过调用Person(Stringname)来完成。*/
                     this(name);                      //用this完成构造函数间的调用
                     this.age = age;
                     System.out.println("name="+name+",,age="+age);
              }
}
class PersonDemo4
{
              public static void main(String[] args)
              {
                     Person p1 = newPerson("zhangsan", 20);
              }
}

10 个回复

倒序浏览
赞一个:victory:
回复 使用道具 举报
很好,今天看到这,还没看完,先mark~
回复 使用道具 举报
这地方 看过了,还是不太清楚使用的地方,缺少代码经验
回复 使用道具 举报

呵呵 谢谢
回复 使用道具 举报
lhtwm1 发表于 2014-8-25 10:25
这地方 看过了,还是不太清楚使用的地方,缺少代码经验

跟着老毕敲代码:)
回复 使用道具 举报
空洞的望着窗外 发表于 2014-8-24 18:15
很好,今天看到这,还没看完,先mark~

一起加油!
回复 使用道具 举报

我昨晚看完了,总结 就是哪个对象调用,指向对象
回复 使用道具 举报
很好的复习了
回复 使用道具 举报
赞一个               
回复 使用道具 举报
恩!总结的不错!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马