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来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。

  • 相关阅读:
    天下大事必作于细,天下难事必作于易
    mybatis 配置 log4j 日志
    org/w3c/dom/ElementTraversal 错误解决办法
    naoting
    FreeMarker 生成Java、mybatis文件
    在mysql数据库中创建oracle scott用户的四个表及插入初始化数据
    音视频编码格式汇总
    java 二进制数字符串转换工具类
    Linux nohup 命令
    Linux & 命令
  • 原文地址:https://www.cnblogs.com/syl1104/p/3724069.html
Copyright © 2011-2022 走看看