java重寫toString()方法


  toString()方法是Object類的方法,調用toString()會返回對象的描述信息。

  1)為什么重寫toString()方法呢?

  如果不重寫,直接調用Object類的toString()方法,打印的是該對象的內存地址(類名@哈希碼值)。如下代碼所示:

class Person {
    String name;
    String sex;
    int age;
    public Person() {}
    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
}

class Demo {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println(p);
    }
}

運行結果:Person@10dea4e

  從上面代碼可知,調用p的toString方法,打印出來的信息是類名+內存地址值。不符合要求。根據我們之前學的繼承,假如父類的指定的功能能不能滿足要求,那么子類可以復寫父類的功能函數,那么該對象再調用toString()方法時,則會調用子類復寫的toString方法。

  (2)一般什么時候重寫toString方法?

  一般在編寫代碼,POJO類必須重寫toString方法。如果繼承了另一個POJO類,注意在前面加一下super.toString。

  POJO(Plain Ordinary Java Object)即普通的java類,具有一部分getter/setter方法的那種類就可以稱作為POJO類。重寫toString()方法后,在方法執行跑出異常時,可以直接調用POJO的toString()方法打印其屬性值,便於排查問題。

  (3)如何重寫toString()?

  toString()方法重寫代碼樣例如下: 

class Person {
    String name;
    String sex;
    int age;

    public Person() {
    }

    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
@Override
public String toString() { return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]"; } }

  編程習慣:開發者要對自定義的類重寫toString(),對對象做詳細的說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM