this
含义:this关键字代表对象自身的引用。本质是引用!!!!
使用场景:
用在构造方法中,调用重写构造方法
class Employee {
String name;
int age;
double salary;
Employee(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
}
用在方法成员变量和参数重名时,避免参数二义性。
public class Dog {
String name;
int age;
int id;/*
* 方法中的变量与属性重名
*/
public Dog(String name) {
id++;
this.name = name;
}
public Dog() {
}
/*
* 在一个构造方法中,调用其他重载的构造方法
*/
public Dog(String name, int age) {
this(name);
this.age = age;
}
/*
* 把this作为一个局部变量,它的值是当前对象的引用
*/
public Dog clone() {
id++;
return this;
}
public void print() {
System.out.println("it is " + name + " number " + id);
}
public static void main(String args[]) {
Dog wangcai = new Dog("Cai Wang");
Dog wangwang = new Dog("Wang Wang");
wangcai.print();
wangwang.print();
Dog wangcai1 = wangcai.clone();
wangcai1.print();
wangwang.clone().clone().print();
}
}
super
含义:父对象(所以,super只会在继承中出现)
使用场景:
子类调用父类的字段。在子类中使用super.age=44,代表将父类的age字段的值设置为44 。
子类调用父类的方法。在子类中使用super.say();代表在子类中调用了父类的say方法。
子类调用父类的构造方法。super()或者super(x,y)分别代表调用父类的无参和有参构造方法。
注意:
super、this都可以出现构造方法中。且都必须在第一行。