目录
①在实例方法(注意不是static方法)中作为本类当前对象将其引用作为自变量传递给其他方法。如
②在实例方法(注意不是static方法)中引用本类当前对象的成员变量和成员方法。
1.为什么要有this
一般地,成员变量和成员方法被视作蓝图或模板以供将来调用,因此定义时不立即具体
化,即不在定义时赋值或调用,而是等到了其他方法或 main()中,才给予调用或赋值。那么
对于将来要调用成员变量和成员方法的对象用什么变量表示呢,Java 给起了个名字叫 this。
this 表示的是当前对象本身,确切地说,this代表了当前对象的一个引用。对象的引用可以
理解为对象的另一个名宇,通过引用可以顺利地访问对象。在 Java 中,this既可以引用当
前对象中的方法,也可以引用当前对象中的成员变量。
当前对象作为变量指代将来任何将来任何一个代表本类对象使得编程能力大增。这和自然语言中的“这个“那个”具有同样的意思,通过指代,使得语言简洁,也具有灵活性。
2. this引用的3种方法
①在实例方法(注意不是static方法)中作为本类当前对象将其引用作为自变量传递给其他方法。如
en=new Event(this);
设想某方法要求将当前对象添加到等待服务的队列中,可以这样:
service.add(this);
以及返回对象:
return this;
输出当前对象:System.out.println(this);其自动调用超类或Oject的toString()方法。
②在实例方法(注意不是static方法)中引用本类当前对象的成员变量和成员方法。
通过this可以引用当前对象的成员变量,调用当前对象的成员方法。语法格式如下:
this.成员变量
this.成员方法([参数列表])
当声明一个类的多个对象时,使用this指代将来的对象,即this相当于汉语中的“自己”的意思。当没有同名成员时,在当前的方法中,this引用可以省略。如在Flower类的setAttribute()方法中,对成员变量color和name的赋值运算省略了this引用。
不省略this引用的方法实现形式如下:
void setAttribute(String c,String n){
this.color.c;
this.name=n;
}
当成员方法的参数与成员变量同名时,在方法体中的变量默认位参数变量,此时需要使用this引用成员变量,this不用省略。例如:
void setAttribute(String color,String name){
this.color.color; //this.color代表将来引用对象的color,而
this.name=name; //赋值号后面的color代表参数中的color.
}
③调用本类重载的构造方法。
this还可以在重载的构造方法(注意此处不能时别的方法)中,调用本类已定义的构造方法。语法格式如下:
this([参数列表]);
例如,将前述Flower类多个重载的构造方法改写如下:
public Flower(String c,String n){ //指定参数的构造方法
color=c;
name=n;
}
public Flower(){ //无参的构造方法
this("unkown","unkown"); //调用本类已定义的构造方法
}
本文介绍了Java中的this引用,解释了为什么需要this以及this的三种用法:作为实例方法中的自变量传递,引用成员变量和方法,以及在构造方法中调用其他构造方法。this关键字在Java中用于标识当前对象,使代码更简洁且灵活。
2万+

被折叠的 条评论
为什么被折叠?



