当前位置: 技术问答>java相关
到底在什么情况下必须在方法里面书写 this ?,书写this的目的是什么?谢谢!
来源: 互联网 发布时间:2017-04-12
本文导语: 到底在什么情况下必须在方法里面书写 this ?,书写this的目的是什么?谢谢! | 正如楼上说的, 比如定义一个 class CMyShape { public : void setcolor(int color){ m_color = color;} } 其实在编...
到底在什么情况下必须在方法里面书写 this ?,书写this的目的是什么?谢谢!
|
正如楼上说的,
比如定义一个
class CMyShape
{
public :
void setcolor(int color){ m_color = color;}
}
其实在编译器编译之后
class CMyShape
{
void setcolor (int color , (CMyShape*)this){this->m_color=color;}
};
可以看出 this就是指向自身的指针
什么情况下用呢 很多情况下!我不能列举出太多,希望别的大侠补充
比如定义一个函数最后返回自身
CMyShaope& fun()
{
doingsomething;
return *this;
}
比如定义一个
class CMyShape
{
public :
void setcolor(int color){ m_color = color;}
}
其实在编译器编译之后
class CMyShape
{
void setcolor (int color , (CMyShape*)this){this->m_color=color;}
};
可以看出 this就是指向自身的指针
什么情况下用呢 很多情况下!我不能列举出太多,希望别的大侠补充
比如定义一个函数最后返回自身
CMyShaope& fun()
{
doingsomething;
return *this;
}
|
this字面意思就是“这个”
JAVA里什么都是对象,
用this就表示当前对象
比如this.name就是当前对象的name字段,
譬如说你,你是从“人”这个类extends来的一个具体的对象(呀,搞不定是神仙哦:)呵呵:)
用在你的“内部”用this.legs表示你自己的腿,等等:—)呵呵:)
class a {
private String name;
pubilc void setName(String name){
this.name = name;
}
}
此时用this来区分方法参数和实例变量,
还有就是需要区分几个对象时用,但不多吧,我想:)呵呵:)
JAVA里什么都是对象,
用this就表示当前对象
比如this.name就是当前对象的name字段,
譬如说你,你是从“人”这个类extends来的一个具体的对象(呀,搞不定是神仙哦:)呵呵:)
用在你的“内部”用this.legs表示你自己的腿,等等:—)呵呵:)
class a {
private String name;
pubilc void setName(String name){
this.name = name;
}
}
此时用this来区分方法参数和实例变量,
还有就是需要区分几个对象时用,但不多吧,我想:)呵呵:)
|
this就是当前对象
|
还有比如有时候新建一个
void CMyShape::OnClilk()
{
FImage = new TImage(this);
FImage->Parent = this;//这里的this指的是CMyShape
}
void CMyShape::OnClilk()
{
FImage = new TImage(this);
FImage->Parent = this;//这里的this指的是CMyShape
}
|
this用来在类定义体内指代类本身的实例句柄
Thinking in Java中讲得比较清楚
用得比较多的两个地方:
1。返回句柄
2。构建器重载
Thinking in Java中讲得比较清楚
用得比较多的两个地方:
1。返回句柄
2。构建器重载
|
我对thinking in java种的很多的东西多感到奇怪,比如说sun原版书种是reference的,它就说是handle,为什么?