1. 程式人生 > >Java_面向對象中的this和super用法

Java_面向對象中的this和super用法

getter 列表 int xtend size rdquo 顯示 關鍵字 setter

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用法