在java編程思想中有這樣一段話:通常寫this的時候,都是指“這個對象”或者“當(dāng)前對象”,而且它本身表示對當(dāng)前對象的引用。在構(gòu)造器中,如果為this添加了參數(shù)列表,那么就有不同的含義。這將產(chǎn)生對符合此參數(shù)列表的某個構(gòu)造器的明確調(diào)用;這樣調(diào)用其他構(gòu)造函數(shù)就有了直接的途徑。
簡而言之:1.this指代當(dāng)前對象的引用;2.this指代構(gòu)造器(根據(jù)參數(shù)不同)。
1. This 指代當(dāng)前類的引用
例子1:重名時,區(qū)分成員變量和局部變量
class Person{
String name;
void setName(String name){this.name=name;}
public static void main(String[] args){
Person p1= new Person();
p1.setName("dd");
System.out.println(p1.name);
}
}
例子2:java編程思想85頁例子,指代當(dāng)前類的引用
class Person{
public void eat(Apple apple){
Apple peeled = apple.getPeeled();
System.out.println("Yummy");
}
}
class Peeler{
static Apple peel(Apple apple){
//....remove peel
return apple;
}
}
class Apple{
Apple getPeeled(){
return Peeler.peel(this);
}
}
public class This{
public static void main(String args[]){
new Person().eat(new Apple());
}
}
例子3:return this,返回當(dāng)前類的引用
public class This{
int i = 0;
This increment(){
i += 2;
return this;
}
void print(){
System.out.println("i = " + i);
}
public static void main(String args[]){
This x = new This();
x.increment().increment().print();
}
}
結(jié)果為:4
2.構(gòu)造器中使用this

super
super的用法和this差不多,但super指代的是父類
1.通過super關(guān)鍵字訪問父類成員變量、方法
2.super如果用在構(gòu)造方法中,要放第一行