黑马程序员技术交流社区
标题: this关键字的使用 [打印本页]
作者: 画了一个圈儿 时间: 2014-8-24 14:26
标题: this关键字的使用
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);
}
}
作者: Java黑马 时间: 2014-8-24 17:00
赞一个:victory:
作者: 空洞的望着窗外 时间: 2014-8-24 18:15
很好,今天看到这,还没看完,先mark~
作者: lhtwm1 时间: 2014-8-25 10:25
这地方 看过了,还是不太清楚使用的地方,缺少代码经验
作者: 画了一个圈儿 时间: 2014-8-25 10:32
呵呵 谢谢
作者: 画了一个圈儿 时间: 2014-8-25 10:33
跟着老毕敲代码:)
作者: 画了一个圈儿 时间: 2014-8-25 10:45
一起加油!
作者: 空洞的望着窗外 时间: 2014-8-25 12:48
我昨晚看完了,总结 就是哪个对象调用,指向对象
作者: 菜鸟一号 时间: 2014-8-25 13:45
很好的复习了
作者: gmz158 时间: 2014-8-25 14:11
赞一个
作者: 七年锦·旅行 时间: 2014-8-25 15:02
恩!总结的不错!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |