[color=blue]
this关键字只能在方法内部使用,表示对"调用方法的那个对象"的引用。
如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用就行。
public class One{
void use(){}
void calluse(){use();}//this.use(),编译器会自动添加
}
如果有同一类型的两个对象,分别是a和b,如何才能让这两个对象都能调用peel()方法
class Banana{void peel(int i){}}
public class BananaTest{
Banana a=new Banana(),b=new Banana();
//实际上,编译器暗自把“所操作对象的引用”作为第一个参数传给了peel()
a.peel(1);//Banana.peel(a,1),发送消息给对象
b.peel(2);//Banana.peeo(b,2)
}
如果想返回对当前对象的引用
public class TestControl{
int i=0;
TestControl increment(){
i++;
return this;
}
如果想把当前对象传递给其他方法
class Peeler{
static Apple peel(Apple apple){
...
return apple;
}
}
class Apple{
Apple getPeeled(){return Peeler.peel(this);}
}
[/color]
this关键字只能在方法内部使用,表示对"调用方法的那个对象"的引用。
如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用就行。
public class One{
void use(){}
void calluse(){use();}//this.use(),编译器会自动添加
}
如果有同一类型的两个对象,分别是a和b,如何才能让这两个对象都能调用peel()方法
class Banana{void peel(int i){}}
public class BananaTest{
Banana a=new Banana(),b=new Banana();
//实际上,编译器暗自把“所操作对象的引用”作为第一个参数传给了peel()
a.peel(1);//Banana.peel(a,1),发送消息给对象
b.peel(2);//Banana.peeo(b,2)
}
如果想返回对当前对象的引用
public class TestControl{
int i=0;
TestControl increment(){
i++;
return this;
}
如果想把当前对象传递给其他方法
class Peeler{
static Apple peel(Apple apple){
...
return apple;
}
}
class Apple{
Apple getPeeled(){return Peeler.peel(this);}
}
[/color]