当前位置:  技术问答>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;


|
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
}

|
this用来在类定义体内指代类本身的实例句柄
Thinking in Java中讲得比较清楚
用得比较多的两个地方:
1。返回句柄
2。构建器重载

|
我对thinking in java种的很多的东西多感到奇怪,比如说sun原版书种是reference的,它就说是handle,为什么?

    
 
 

您可能感兴趣的文章:

  • this 到底怎么用啊!!!救我!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Docker 1.12.0到底有哪些不同之处
  • 各位高人,关于IDE的驱动程序,我看蒙了,谁能告诉我到底linux源文件中到底那些是跟IDE硬盘驱动有关的?
  • 网站到底怎么实现盈利赚钱:个人网站赚钱方法大总结
  • SMARTDRV后台缓冲到底起什么作用呢?
  • ejb到底怎么回事呀?
  • ---初级问题,byte类型到底表示什么含义--
  • interface 到底有什么用???实现接口,怎么实现??
  • 句柄?句柄?“句柄”到底是什么东西?怎样理解?
  • jsp文件到底需不需要编译?
  • 到底什么是堆栈?
  • 在线等!大哥们,printk函数到底怎么看他输出的结果?马上给分
  • 到底是提交执行那个?
  • package到底怎么用?
  • umask命令到底怎么用?
  • ioctl() 到底有什么作用??
  • 终端、终端设备、控制台到底有什么区别和联系?(在线等,急!)
  • sembuf.sem_num到底如何理解?--初学者向各位请教
  • du命令到底怎么用?
  • 不同的shell之间到底有何区别,与命令有关系吗
  • 请问一下点号到底有什么作用?
  • GCC的naked到底要怎么搞?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3