zoukankan      html  css  js  c++  java
  • 复习的开始

      又算是一段时间学习的结束,回首不懂的,模糊的还有,却也发现,不懂的却变懂,这两天要复习了,我一定要认真,我觉得是基础学习最后的战斗和机会了,我今天就从前开始看了一下书,加上网上的资料和总结,主要说说这个简单有麻烦的this和super. 

    this:代表对象。就是所在函数所属对象的引用。 
    this到底代表什么呢?哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用。 开发时,什么时候使用this呢? 
    在定义功能时,如果该功能内部使用到了调用该功能的对象,这时就用this来表示这个对象。  
    this 还可以用于构造函数间的调用。 调用格式:this(实际参数); 
    this对象后面跟上 .  调用的是成员属性和成员方法(一般方法); this对象后面跟上 () 调用的是本类中的对应参数的构造函数。  
    注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

    如果想要调用父类中的属性值,需要使用一个关键字:super 

    This:代表是本类类型的对象引用。 
    Super:代表是子类所属的父类中的内存空间引用。 
    注意:子父类中通常是不会出现同名成员变量的,因为父类中只要定义了,子类就不用在定义了,直接继承过来用就可以了。

    发现子类构造函数运行时,先运行了父类的构造函数。为什么呢? 
    原因:子类的所有构造函数中的第一行,其实都有一条隐身的语句super(); 
    super(): 表示父类的构造函数,并会调用于参数相对应的父类中的构造函数。而super():是在调用父类中空参数的构造函数。 
    为什么子类对象初始化时,都需要调用父类中的函数?(为什么要在子类构造函数的第一行加入这个super()?) 
    因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。 
     
    注意:子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  
    如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数。 
    如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。

  • 相关阅读:
    The Mac Application Environment 不及格的程序员
    Xcode Plugin: Change Code In Running App Without Restart 不及格的程序员
    The property delegate of CALayer cause Crash. 不及格的程序员
    nil localizedTitle in SKProduct 不及格的程序员
    InApp Purchase 不及格的程序员
    Safari Web Content Guide 不及格的程序员
    在Mac OS X Lion 安装 XCode 3.2 不及格的程序员
    illustrate ARC with graphs 不及格的程序员
    Viewing iPhoneOptimized PNGs 不及格的程序员
    What is the dSYM? 不及格的程序员
  • 原文地址:https://www.cnblogs.com/syl1104/p/3724069.html
Copyright © 2011-2022 走看看