Java中this和super的用法

Java中this和super的用法

一、作爲對象使用

1.this的用法
作爲當前類的一個對象使用,一般用於封裝中的getXxx()方法,調用當前類中的屬性

package program;

public class Person {

    private String name;//姓名
    private int age;//年齡

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

2.super的用法
作爲父類中的一個對象在子類中進行使用,調用父類中的getXxx()和setXxx()方法

“`
package program;

public class Student extends Person{

private String studentNo;//學號

public String getStudentNo() {
    return studentNo;
}

public void setStudentNo(String studentNo) {
    this.studentNo = studentNo;
}

public void test(){
    super.setName("小明");
    super.setAge(18);
    this.setStudentNo("0144004");
    String name = super.getName();
    int age = super.getAge();
    String studentNo = this.getStudentNo();

    System.out.println("姓名: " + name + "  年齡 " + age + " 學號 " + studentNo);
}

public static void main(String[] args){
    Student s = new Student();
    s.test();
}

}

這裏寫圖片描述

“`二、作爲構造方法使用

super(參數):調用父類中的某一個構造函數(應該爲構造函數中的第一條語句)。
this(參數):調用本類中另一種形式的構造函數(應該爲構造函數中的第一條語句)。

class Person {
public static void prt(String s) {
System.out.println(s);
}

Person() { 
   prt("父類·無參數構造方法: "+"A Person."); 
}//構造方法(1) 

Person(String name) { 
   prt("父類·含一個參數的構造方法: "+"A person's name is " + name); 
}//構造方法(2) 

}

public class Chinese extends Person {
Chinese() {
super(); // 調用父類構造方法(1)
prt(“子類·調用父類”無參數構造方法“: “+”A chinese coder.”);
}

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("codersai"); 
   cn = new Chinese("codersai", 18); 
} 

}
運行結果:

父類·無參數構造方法: A Person.
子類·調用父類”無參數構造方法“: A chinese coder.
父類·含一個參數的構造方法: A person’s name is codersai
子類·調用父類”含一個參數的構造方法“: his name is codersai
父類·含一個參數的構造方法: A person’s name is codersai
子類·調用父類”含一個參數的構造方法“: his name is codersai
子類:調用子類具有相同形參的構造方法:his age is 18

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章