Java重寫toString的意義 一.toString()方法 toString()方法在Object類里定義的,其返回值類型為String類型,返回類名和它的引用地址. 在進行String類與其他類型的連接操作時,自動調用toString()方法,demo如下: Date time = new ...
Java重寫toString
的意義
一.toString()
方法
toString()
方法在Object類里定義的,其返回值類型為String類型,返回類名和它的引用地址.
在進行String類與其他類型的連接操作時,自動調用toString()
方法,demo如下:
Date time = new Date();
System.out.println("time = " + time);//相當於下一行代碼
System.out.println("time = " + time.toString());
實際應用中,用戶可以根據需要重寫toString()
方法,如Stirng
類重寫了toString()
方法,返回字元串的值,dome如下
System.out.println(s1);//相當於下一行代碼
System.out.println(s1.toString());
基本數據類型轉換為String類型是,調用了對應包裝類的toString()
方法,demo如下:
int a = 10;
System.out.println("a = " + a);
二.為什麼要重寫toString
?
其實對於一般的對象來說都會有這個方法,toString()
這個方法的作用,主要就是將對象中各個屬性值按字元串的方式輸出出來.
三.案例說明
下麵以具體的例子說明,打個比方,比如一個People類,裡邊有name、age這兩個屬性;
創建一個對象:
People p = new People();
p.toString();
這麼做的話,預設輸出就是一個記憶體地址,也就是哈希碼值。如果進行重寫toString()
,則可以按照自己的方式去輸出。
比如將toString()
的方法體改為:
return "名字為:" + p.name + ";性別為" + p.age;
下麵重寫people類來演示一下:
package com.Test.user;
/**
* 用toString 重寫People類
*/
public class People {
// 成員變數
private String name;
private int age;
// 無參構造函數
public People() {
}
// 有參構造函數
public People(String name, int age) {
super();
this.name = name;
this.age = age;
}
// getter setter方法
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;
}
// 重寫toString();
@Override
public String toString() {
return "[" + "這個人的姓名name叫 :" + name + ", 年齡是age :" + age + "]";
}
public static void main(String[] args) {
// 創建一個People的對象
People people = new People("小明", 18); // 類名開頭字母大寫
System.out.println(people.toString());
}
}
輸出結果: [這個人的姓名name叫 :小明, 年齡是age :18] , 這個時候toString
輸出的東西就是People這個類的姓名和年齡了
toString()
是object方法,預設都是繼承object類,所以只要繼承了object的類都可以重寫這個方法。
四.什麼是重寫?
重寫是指從父類繼承後,子類對父類某方法的具體實現進行修改,不能修改其方法名,當System.out.println(對象)
時,預設使用toString()
方法,將對象轉為字元串輸出,toString()
方法繼承於所有類的隱性基類(所有類的頂級父類 Object),如果某類沒有重寫toString()
方法,這時調用toString()
將得到(類名+地址名)這樣的字元串,改成別的方法名應該是不會出錯的,是否你添加了重寫標記,改成別的方法名是不能稱為“重寫”的。
五.重寫的含義
在寫Java代碼的時候,在後臺代中想要列印變數的值到控制台,當你列印一個對象的時候,實際上是調用對象的toString()
方法!這是在類的定義階段,屬性還沒有初始化 ,就是列印對象時,列印預設的是 對象.toString()
; 可以理解為輸出所有的屬性值;一般out.println(Object)
和 System.out.println(Object)
,其中輸出的都是Object.toString()
方法。重寫toString()
方法,可以輸出自己想要的文字信息
本文來自博客園,作者:一粒金燦米,轉載請註明原文鏈接:https://www.cnblogs.com/zy-feng/p/17273509.html