美文网首页
第四天___②

第四天___②

作者: 糖砂西红柿 | 来源:发表于2018-06-17 00:41 被阅读5次

    this 属性调用

    从实际使用角度来讲this可以做三件事:

    • 调用本类属性
    • 调用本类方法(包含普通与构造)
    • 表示当前对象(是this最难理解的相对概念)

    使用this调用本类属性

    调用构造方法有可能会出现重名的问题,为了解决构造方法重名的问题,提高代码的可读性所以需要进入this。
    this.属性,表示当前对象中的属性,这样我们就不会和构造方法中的参数名称混了

    图片.png
    以后大家在编写方法,调用本类中的属性的时候,强烈建议使用this关键字调用!!!
    最佳实践,只要在类的方法中访问有类的属性,那么属性之前一定要追加this关键字
    以上就是this调用本类中的属性情况

    this调用本类方法

    类中的方法一定有两种:

    • 普通方法:语法 => this.方法名称(如果有参数就传递参数)
    • 构造方法:语法 => this(如果有参数传递参数)

    调用普通方法:

    图片.png
    以上就是this调用普通方法的情况。
    图片.png
    事实上不使用this,也能调用本类中的方法,但是最佳实践是加上this,这样的目的是区分方法的定义来源,在继承的时候就很有用了!
    this调用构造方法:
    this调用构造方法与this调用普通方法最大的区别是使用new实例化类的新对象的时候使用一次,而成员方法是在构造方法执行完成后,可以执行多次。在Java中支持类构造方法的互相调用。
    一个好的代码民工的追求就是没有代码重复!很重要!
    如果程序中有重复的代码出现(非方法)那我们就要想办法消灭,比如封装成一个方法等。
    图片.png
    以上就体现了构造方法中重复的问题。
    解决方案:
    图片.png
    以上就实现了this互相调用构造函数。虽然this可以实现构造方法的互相调用,但是有以下两点要求
    • this()调用构造方法的语句必须放在构造方法的首行。否则如下图所示:
      图片.png
      注意静态方法也无法调用构造方法。构造方法只能通过new关键字或者本类中的其他构造方法调用
    • 使用this调用构造方法的时候,请留有出口。否则如下:


      图片.png
    图片.png

    this表示当前对象

    在我们的实际开发中使用到最多的就是this调用本类属性与this调用本类构造方法。但是在this里面有一个非常头疼的属性,"this表示当前对象"。
    在一个类之中肯定会产生若干个对象,那么程序类在进行分辨的时候,并不会记住具体有多少个对象产生了。它唯一可能知道的,当前操作本类的对象是哪一个。
    代码执行:

    图片.png
    图片.png
    综上,在整体的操作过程之中,this的定义(就是this这个写法)并没有变,只要有某一个对象调用了本类中的方法,那么类方法中的这个this就表示当前执行方法的那个对象。所以this并不是一个固定的概念,而是一个相对的概念。以后再对这个this的用法进行消化。

    相关文章

      网友评论

          本文标题:第四天___②

          本文链接:https://www.haomeiwen.com/subject/nsdieftx.html