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

this:this

一、使用在類中,能夠用來修飾屬性、方法、構造器spa

二、表示當前對象或者是當前正在建立的對象設計

三、當形參與成員變量重名時,若是在方法內部須要使用成員變量,必須添加 this 來代表該變量時類成員code

public void setName(String name) {
        this.name = name;
    }

 

四、在任意方法內,若是使用當前類的成員變量或者成員方法能夠在其前面添加 this ,加強程序的閱讀性對象

五、在構造器中使用 「 this(形參列表) 」 顯示的調用本類中重載的其餘的構造器blog

  >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(形參列表) 」get

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());
    }
}

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>class

 

 

super(繼承性):變量

一、super, 相較於關鍵字 this , 能夠修飾屬性、方法、構造器

二、super 修飾屬性、方法:在子類的方法、構造器中,經過 super.屬性 或者 super.方法 的形式,顯式的調用父類的指定屬性或者方法。尤爲是,當子類與父類有同名的屬性、或者方法時,調用父類中的結構,必定要用 「super.」

三、經過 「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;
    }
    
}
相關文章
相關標籤/搜索