This:
关键字this是指向调用对象本身的引用名,可以用this关键字引用对象的实例成员;
this关键字可以用来引用类的隐藏数据域;
//调用隐藏对象
public class F{
private int i = 5;
private static double k = 0;
public void setI(int i){
this.i = i;
}
public void setK(double k){
this.k = k;
}
}
this关键字可以用来用调用同一个类的另一种构造方法;
public class Circle{
private double radius;
public Circle(double radius){
this.radius = radius; //this关键字用于调用做构建对象的隐藏数据域
}
public Circle(){
this(1.0); //this关键字用于调用另一个构造方法
}
}
java要求的构造方法中,语句this应放到任何其他可执行语句之前出现;
如果一个类有多个构造方法,做好尽可能使用this来实现他们,这样做通常可以简化代码,使类易于阅读和维护
Super:
对于一个类的父类,引用super可以完成同this一样的工作。可以用它来引用超类中被遮蔽或覆盖的成员。能够调用超类的最初的方法,这就允许我们在执行额外工作之前或之后委托给他们行为。从而将其作为新方法的一部分来使用。
class Animal {
void eat(Food f) throws InedibleException{
//consum food
}
}
class Herbivore extends Animal{
void eat(Food f) throws NeatInedibleException{
//check if edible
.....
try{
super.eat(f);
}catch(InedibleException e){......}
}
}
这个例子中Herbivore类(食草动物)覆盖了 Animal eat() 方法,从而对事物先做出检查,完成任务之后,使用super.eat()来调用其超类中的eat()方法。
如果没有超类将无法访问覆盖方法。
C/S : 客户端服务程序
B/S : 浏览器端服务程序