this通常指”當前類別”,super通常指”父類別”
參考資料:
- Android中this、super的区别 :http://blog.163.com/qq3076169@126/blog/static/1717240672012620111028892/
- EX1:
•this 用法:
–在你的方法中的某个”變數名”与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是前對象變數。
•輸出結果
–DemoSuper:
–Name=kevin Age=22
| public class DemoThis{ // 紅字為同一個類別的變數
private String name; // 共用暫存變數
private int age;
DemoThis(String name, int age){
setName(name); //你可以加上this来调用方法,像这 样:this.setName(name);但这并不是必须的
setAge(age);
this.print(); // 可以用 print() 取代
}
public void setName(String name){
this.name=name;//此处必须指明你要引用成员变量
}
public void setAge(int age){
this.age=age;
}
public void print(){
System.out.println("Name="+name+" Age="+age);//在此行中并 不需要用this,因为没有会导致混淆的东西
}
public static void main(String[] args){
DemoThis dt=new DemoThis("Kevin","22");
}
}
|
- EX2:
•this , super用法:
•輸出結果:
•A Person.
•A chinese.
•A person name is:kevin
•his name is:kevin
•A person name is:kevin
•his name is:kevin
•his age is:22
• 父類別:Person
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(); //调用父类构造函数(1) prt(“A chinese.”); // 繼承Person使用prt() } Chinese(String name){ super(name);//调用父类具有相同形参的构造函数(2) prt(“his name is:”+name); } Chinese(String name,int age){ this(name);//调用当前具有相同形参的构造函数(3) prt("his age is:"+age); } public static void main(String[] args){ Chinese cn=new Chinese(); cn=new Chinese("kevin"); cn=new Chinese("kevin",22); } } |
沒有留言:
張貼留言