zoukankan      html  css  js  c++  java
  • this() and super()的简记

    this:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

    super:super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

    this和super的异同:

    1)this()和super()在构造方法,作用是在JVM堆中构建出一个对象。为了避免多次创建对象,同一个方法内只能调用一次this()或super()【两个不能同时出现,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过】。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现【以此来创建对象】,防止异常。

    2)程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名(这也是this的一个用法)

    3)super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。

    4)构造器中第一行默认是super(),一旦直接父类的构造器中没有无参的,那么必须显式调用父类的某个有参构造函数。
    5)super()和this()均需放在构造方法内第一行。调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

    6)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

    7)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

  • 相关阅读:
    选择排序与冒泡排序
    判断是否为偶数
    mysql基础之mysql双主(主主)架构
    mysql基础之mysql主从架构半同步复制
    mysql基础之mysql主从架构
    mysql基础之数据库备份和恢复实操
    mysql基础之数据库备份和恢复的基础知识
    mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
    mysql基础之查询缓存、存储引擎
    mysql基础之数据库变量(参数)管理
  • 原文地址:https://www.cnblogs.com/yangrongkuan/p/11996622.html
Copyright © 2011-2022 走看看