Java_面向對象中的this和super用法
this:
1、使用在類中,可以用來修飾屬性、方法、構造器
2、表示當前對象或者是當前正在創建的對象
3、當形參與成員變量重名時,如果在方法內部需要使用成員變量,必須添加 this 來表明該變量時類成員
public void setName(String name) { this.name = name; }
4、在任意方法內,如果使用當前類的成員變量或者成員方法可以在其前面添加 this ,增強程序的閱讀性
5、在構造器中使用 “ this(形參列表) ” 顯示的調用本類中重載的其他的構造器
>5.1 要求 “ this(形參列表) ” 要聲明在構造器的首行!
//構造方法 public Person(){} public Person(String name){ this(); this.name = name; } public Person(String name,int age){ this(name); this.age = age; }
>5.2 類中若存在 n 個構造器,那麽最多有 n-1 構造器中可以使用 “ this(形參列表) ”
package com.basis;public class Person { private String name; private int age; //構造方法 public Person(){} public Person(String name){ this(); this.name = name; } public Person(String name,int age){ this(name); this.age = age; }//setter 和 getter 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show(){ System.out.println("name:"+this.getName()+" age:"+this.getAge()); } }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
super(繼承性):
1、super, 相較於關鍵字 this , 可以修飾屬性、方法、構造器
2、super 修飾屬性、方法:在子類的方法、構造器中,通過 super.屬性 或者 super.方法 的形式,顯式的調用父類的指定屬性或者方法。尤其是,當子類與父類有同名的屬性、或者方法時,調用父類中的結構,一定要用 “super.”
3、通過 “super(形參列表)” ,顯式的在子類的構造器中,調用父類指定的構造器
>3.1 要求 “ super(形參列表) ” 要聲明在構造器的首行!
>3.2 任何一個類(除 Object 類)的構造器的首行,要麽顯式的調用本類中重載的其他構造器 “this(形參列表)” 或顯式的調用父類中指定的構造器 “super(形參列表)” ,要麽默認的調用父類空參的構造器 “super()”
>3.3 建議在設計類時,提供一個空參的構造器!
class Student extends Person{ private int id; public Student() { super(); } public Student(String name, int age,int id) { super(name, age); this.id = id; } public Student(String name,int id) { super(name); this.id = id; } }
Java_面向對象中的this和super用法