this和super的关键字

一. 简单概述:

        this代表的是当前对象,例:谁调用实例方法,this就代表谁。

        super代表的是调用父类对象。如super.父类成员变量。调用的是父类的成员变量

 

二. this的常用地方:

         在JavaBean建立setter()方法中

public class Employee {
    private String num;
    private String name;
    private double salary;

    public void setNum(String num) {
        this.num = num;
    }

    
    public void setName(String name) {
        this.name = name;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    
}

          也可以用于构造器中调用自己其他的构造器。但必须放在第一行。因此不能再显示的调用父类的构造器,只能隐式的调用

父类的无参构造器。

public class Employee {
    private String num;
    private String name;
    private double salary;

    public Employee() {
    }

    public Employee(String num, String name){
        //此方法的调用,一般规定某项为常用的,默认的数据,然后通过调用自己的构造器,完成对对象的初始化
       this(num,name,1000);
    }

    public Employee(String num, String name, double salary) {
        this.num = num;
        this.name = name;
        this.salary = salary;
    }
}

三. super的常用方式

        1. super一般可以分为隐式和显示调用父类的相关成员变量,比如,Cooker继承Employee的类

public class Employee{
    //定义父类的无参构造器
    public Employee(){
        System.out.println("父类的无参构造器");
    }
    
}
public Class Cooker{
    //定义子类无参构造器
    public Cooker(){
        //super() 默认为隐藏并且永远在第一行,不然会编译错误。当然也可以显示的写出来
        System.out.println("子类无参构造器");
    }
}
public class Main{
    public static void main(String[] args) {
        /*
          此时先输出父类无参构造器,再输出子类无参构造器。因为子类无参构造器中含有一个隐式的            
          super()方法,会调用父类的无参构造器,然后在输出子类的无参构造器。简单理解:先有父亲才会有 
          儿子 
          
        */
        Cooker c = new Cooker();  

    }
}

       2. super调用成员变量都为父类的成员变量,而所有的值都优先去找父类,如果没有则向上找,如果没有,则编译错误。

       3. super()调用构造器与this大致相同,子类可以通过super()让父类来创建对象。当然,想调用父类的有参构造器,super

不能显示的调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值