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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548700.html
標籤:Java
上一篇:RocketMQ 學習
