this 和super 关键字的作用

this 和super 关键字的作用

this

  1. 引用当前对象
  • 在成员方法中,this代表调用该方法的当前对象
  • 可以通过this来访问当前对象的成员变量和成员方法。
package JavaYF;  
  
public class Person {  
    private String name;  
    private int age;  
    //在构造方法中,this用于区分成员变量和参数变量,避免命名冲突。
    public Person(String name,int age){  
        this.name=name;  
        this.age=age;  
    }  
    public void displayInfo() {  
        System.out.println("Name: " + this.name + ", Age: " + this.age);  
    }  
}
  1. 作为方法的参数传递当前对象
  • 可以将当前对象作为参数传递给其他方法
package JavaYF;  
  
public class SomeClass {  
    void someMethod(SomeClass someClass) {  
        //方法体  
    }  
    void anotherMethod() {  
        someMethod(this);  
    }  
}
  1. 调用本类的其他构造方法
  • 在一个类的构造方法中,可以使用this来调用同一类中的其他构造方法必须放在构造方法的第一行
package JavaYF;  
  
public class Student {  
    private String name;  
    private int age;  
    public Student(){  
        this("Unknown",0);  
    }  
    public Student(String name,int age){  
         this.name=name;  
         this.age=age;  
    }  
}

super

  1. 调用父类的构造方法
  • 在子类的构造方法中,可以使用super来调用父类的构造方法,必须放在子类构造方法的第一行
  • 这有助于确保在创建子类对象时,先正确地初始化父类部分。
package JavaYF;  
  
class Parent {  
    public Parent(){  
        System.out.println("Parent");  
    }  
}  
  
public class Child extends Parent {  
    public Child(){  
        //调用Parent类的构造方法  
        super();//输出”Parent“  
        System.out.println("Child");  
    }  
}
  1. 访问父类的成员变量和方法
  • 当子类中定义了与父类同名的成员变量或方法时,可以使用super来明确地访问父类中的成员变量或方法。
class Parent{  
    int num=10;  
    void show(){  
        System.out.println("Parent method");  
    }  
}  
  
public class Child extends Parent {  
    int num = 20;  
  
    void display() {  
        System.out.println("Parent num = " + super.num);//10  
        System.out.println("Child num = " + this.num);//20  
        super.show();//Parent method  
    }  
}

总结

  • this 关键字用于引用当前对象的实例变量和方法
  • super 关键字用于引用父类(超类)的变量和方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值