Java中this与super关键字

    一、关键字--this

    1、this是什么?


    在Java中,this关键字的作用和其词义很接近.

    它在方法内部使用,即这个方法所属对象的引用; 普通方法中,this总是指向调用该方法的对象;

    它在构造器内部使用,表示该构造器正在初始化的对象;构造方法中,this总是指向正要初始化的对象;

    this表示当前对象,this可以用来修饰属性、方法、构造器

    this理解为当前对象或当前正在创建的对象。比如:this.name,this.info(); 

    this不能用于static方法,在static方法中不可以访问非static的成员。

    通过this调用其它构造方法,必须位于方法第一句。

   可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器
        要求:

              a.在构造器内部必须声明在首行

              b.若一个类中有n个构造器,那么最多有n-1个构造器可以使用this();


    2、什么时候使用this关键字呢?

    1、 当在方法内需要用到调用该方法的对象时,就用this。

    2、当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是类成员

    3、在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性
     
    3、this总结

    1、this使用在类中,可以用来修饰属性、方法、构造器

    2、this表示当前对象或者是当前正在创建的对象

    3、当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是类成员

    4、在任意方法内,如果使用当前类的成员变量或成员方法,可以在其前面添加this,增添程序的阅读性

    5、在构造器中使用"this(形参)"显示的调用本类中重载的其它的构造器

          a. 要求"this(形参列表)"要声明在构造器的首行

         b. 类中若存在n个构造器,那么最多有n-1个构造器中使用了this


二、super

Java中的super关键字,在Java类中使用super关键字来调用父类中的指定操作:

    super可用于访问父类中定义的属性

    super可用于调用父类中定义的成员方法

    super可用于在子类构造方法中调用父类的构造器

   当子类与父类中有同名的属性时,可以通过"super.属性"显示的调用父类中声明的属性

   若想调用子类的同名的属性,可以通过"this.属性"

   当子类重写父类的方法以后,在子类中若想再显示的调用父类的被重写的方法,就需要使用"super.方法"

    super修饰构造器:通过在子类中使用"super(形参列表)"来显示的调用父类中指定的构造器

        在构造器内部,“super(形参列表)”必须要声明在首行

        在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个

        当构造器中,不显示的调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参的构造器
注意:
    尤其当子类出现同名成员时,可以用super进行区分
    super的追溯不仅限于直接父类
    super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

this和super的区别
    1、访问属性
        this访问本类中的属性,如果本类没有此属性则从父类中继续查找;super访问父类中的属性
    2、调用方法
        this访问本类中的方法;super直接访问父类中的方法
    3、调用构造器
        this调用本类构造器,必须放在构造器的首行;super调用父类构造器,必须放在子类构造器的首行
    4、特殊
        this表示当前对象;super无此概念






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值