JavaBean重寫Object類中的方法

Soisini發表於2020-11-22

我們時常要用到object類,但是他本身的toString方法和equals方法並不是我們所需要的話,這時候就要用到JavaBean類來重寫Object類中的方法:
這裡在java的編譯工具idea裡面十分容易,只要alt加insert或者滑鼠右鍵,然後選中Generate,然後在裡面尋找你要重寫的方法名即可,接下來將給出Student類重寫Object奇中類並在Test類中測試的程式碼:
首先是Student類的程式碼

package Object;

import java.util.Objects;

public class Student {
    private int id;
    private String name;
    private int score;
    public Student() {
    }
    //構造方法
    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }

    //成員方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }

    @Override
    public boolean equals(Object o) { //s1.equals(s2)
        //this表示s1 o在這裡表示傳進來的s2
        //比較兩個物件的地址值是否相同 若相同說明是一個物件不需要再比較了  提高效率
        if (this == o)
            return true;
        //判斷要比較的兩個物件是否是同一型別的 比如你不能拿學生和護士比較 提高了程式碼的健壯性
        if (o == null || getClass() != o.getClass())
            return false;
        //向下轉型 使父類可以用子類的相關屬性
        Student student = (Student) o;
        return id == student.id &&
                score == student.score &&
                //這裡呼叫的是String裡面自帶的equals方法
                Objects.equals(name, student.name);
    }


}

接下來是Test方法

package Object;

import java.sql.SQLOutput;

public class Test {
    public static void main(String[] args) {
   //測試toString方法
      Student student1= new Student(1,"s1",66);
        System.out.println(student1);
        //輸出語句直接列印物件,相當於呼叫了物件的toString方法
        System.out.println(student1.toString());
        Student student2= new Student(1,"s1",66);
        boolean a=student1.equals(student2);
        System.out.println(a);
    }
}

然後很容易看出來,a應該是true下來給出來執行結果截圖
在這裡插入圖片描述

相關文章