Java this、super关键字的使用和对比

Java中this与super关键字详解
本文详细介绍了Java中的this和super关键字。this主要用于调用本类的属性、方法及表示当前对象,特别是在参数与属性同名时,需用this区分。this调用构造方法时需注意构造器调用顺序。super则主要用于子类调用父类构造方法或访问父类成员,它是子类访问父类的桥梁。理解这两者在编程中非常重要。

this

Java中经常会见到this关键字

this关键字主要有以下三个方面的用途:

        1.this调用本类属性

        2.this调用本类方法

        3.this表示当前对象

this调用本类属性

class Person{
    private String name;
    private int age;
 
    public Person(String name,int age){
        name = name ;
        age = age ;
    }

这段代码可能很多人一眼就能看出来端倪,当参数与类中属性同名时,类中属性无法被正确赋值。

如果我们想正确的给类中属性赋值的话,就要用到this关键字。

同时也要注意,只要是在类种方法调用类中属性,一定要用this关键字调用

 

this调用本类方法

因为方法咱们分了构造方法和普通方法,我们这里也分类讨论一下

 

this调用普通方法

我们通过  this.方法名称(参数)  的形式来调用

this调用普通方法,这个方法一定是本类中的方法

虽然调用本类的不同方法不用this关键字也能调用,但是建议调用时加上this关键字,加上this关键字更加明确了方法来源就是本

类(这一点尤其在有继承关系的类中特别重要)

 

this调用构造方法

通过this()的方式来调用

Java中就可以通过这种形式进行构造方法的相互调用

但是使用这种方法需要注意:一个构造器中最多只能调用一个其他的构造器。并且,对其他构造器的调用动作必须放在构造器的

起始处(也就是构造器的首行),否则编译的时候将会出现错误,另外不能在构造器以外的地方以这种方式调用构造器。

public class Person{
public Person(){

    }
 
    public Person(String name){
        this();//调用本类无参构造
        this.name = name ;
    }
 
    public Person(String name,int age){
        this(name);//调用本类有参构造
        this.age = age ;
    }
}

this表示当前对象

只要对象调用了本类中的方法,这个this就表示当前执行的对象 

 

super

介绍完this其实super就很简单了

最常用的就是子类对象实例化操作的时候的super(),主要作用是子类调用父类构造方法时才使用的。

在进行覆写的操作过程之中,子类也可以使用super.方法()/super.属性明确调用父类中的方法或属性。

super和this在使用上非常的相似,但是两者最大的区别是super是子类访问父类的操作,而 this是本类的访问处理操作。

 ps:父类写错写成了不累 能懂就行...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值