在安卓开发过程中的一些点,这里归纳总结一些
This
在java中,this指代当前对象的方法或成员。特别地,对于形参与当前对象成员具有相同名字时,this引用的是当前对象的成员,而不带this的是形参。
public void setthis(string name, int id){
this.name = name; //this.name引用的是当前对象的方法或成员,而不带this的name就是形参
this.id = id;
}
2. Super
用法 一:常用的用法,super一般指代的是父类的方法或成员。
public class DemoSuper extends Person{
public void print(){
System.out.println("DemoSuper:");
super.print();//调用父类的打印方法
}
用法二:调用父类构造器
class Person{
public static void prt(String s){
System.out.println(s);
}
//父类构造函数一
Person(){
prt("A Person.");
}
//父类构造函数二
Person(String name){
prt("A person name is:"+name);
}
}
public class Chinese extends Person{
Chinese(){
super();//调用父类构造函数一
prt("A chinese.");(1)
}
Chinese(String name){
super(name);//调用父类具有相同形参的构造函数二
prt("his name is:"+name);
}
Chinese(String name,int age){
this(name);//调用当前具有相同形参的构造函数
prt("his age is:"+age);
}
public static void main(String[] args){
Chinese cn=new Chinese();
cn=new Chinese("kevin");
cn=new Chinese("kevin",22);
}
}
小结:“this指代当前对象,super指代父类”。当然,在 Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如(1)处,你可以将它替换为“this.prt”(因为它继承了父类中的那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。但这样似乎就有点画蛇添足的味道了。
参考文献: