1. 程式人生 > >Java重寫ToString()方法的意義

Java重寫ToString()方法的意義

1、toString()就是是重寫,對於一般的物件來說都會有這個方法,其實這個方法的目的,主要就是將物件按字串的方式輸出出來:打個比方,比如一個People類,裡邊有name,age這兩個屬性,

如果你People p = new People();
p.toString();
這麼做的話,預設輸出就是一個記憶體地址。
那麼你會想到重寫ToString();這個方法,按自己的方式去輸出。
比如將toString的方法體改為:return p.name+p.age;
這個時候toString輸出的東西就是People這個類的姓名和年齡了。

toString()是oject方法,所以只要繼承自oject的類都闊以重寫這個方法。應用舉例editText.getText().toString() 

2、重寫是指從父類繼承後,子類對父類某方法的具體實現進行修改,不能修改其方法名,當System.out.println(物件)時,預設使用toString()方法,將物件轉為字串輸出,toString()方法繼承於所有類的隱性基類(所有類的大哥大 Object類),如果某類無重寫toString()方法,這時呼叫toString()將得到(類名+地址名名)這樣的字串,改成別的方法名應該是不會出錯的,是否你添加了重寫標記,改成別的方法名是不能稱為“重寫”的。

3、在寫Java程式碼的時候,在後臺代中想要列印變數的值到控制檯,當你列印一個物件的時候,實際上是呼叫物件的toString()方法!這是在類的定義階段,屬性還沒有初始化 ,就是列印物件時,列印預設的是 物件.toString(); 可以理解為輸出所有的屬性值;

4、一般out.println(Object) 和 System.out.println(Object),其中輸出的都是Object.toString()方法。重寫toString()方法,可以輸出自己想要的文字資訊

注:列印一個物件,可以直接System.out.println(p);其實println方法內部會自動呼叫p 的 toString() 方法。

相關推薦

Java重寫ToString()方法意義

1、toString()就是是重寫,對於一般的物件來說都會有這個方法,其實這個方法的目的,主要就是將物件按字串的方式輸出出來:打個比方,比如一個People類,裡邊有name,age這兩個屬性, 如果你People p = new People(); p.toString(

Effective Java 第三版——12. 始終重寫 toString 方法

print ring 並且 love returns 描述 expect rect 方式 Tips 《Effective Java, Third Edition》一書英文版已經出版,這本書的第二版想必很多人都讀過,號稱Java四大名著之一,不過第二版2009年出版,到現在

Effective Java 第三版讀書筆記——條款12:總是重寫 toString 方法

雖然 Object 類提供了 toString 方法的實現,但它返回的字串通常不是類的使用者想要看到的。它由類名後跟一個 “ at ” 符號(@)和雜湊碼的無符號十六進位制表示組成,例如 [email protected]。toString 的通用約定要求,返回的字串應該是“一個簡潔但內容豐富的表示

Java物件重寫toString()方法,實現物件內容輸出

覆蓋父類toString()方法: public class Person { private String id; private String name; public Person(String id, String name) { this.id = id;

JAVA POJO類重寫toString方法

很多時候為了追蹤資料,查詢原因,需要重寫toString方法,下面推薦一個比較好用的方法: 使用Apache Commons Lang的ToStringBuilder類,有靜態方法可用 public String toString(){ return ToStringBuilder.

java實體類重寫toString()方法

實體類一般需要重寫toString()方法,在列印日誌時輸出引數的資訊。但是如果手動拼接實體類裡每個屬性和屬性值又比較麻煩,以下是常用的幾種方法。 利用Apache工具類ToStringBuilder //方法1 輸出物件名稱簡寫 屬性 屬性值(我常用這種方式) @Ove

java實體類如果不重寫toString方法,會如何?

先認識一下Object Object 類的 toString 方法         返回一個字串,該字串由類名(物件是該類的一個例項)、at 標記符“@”和此物件雜湊碼的無符號十六進位制表示組成。換句話說,該方法返回一個字串,它的值等於:             

Java重寫equals方法

根據 ava 判斷 list bject 發生 集合 () 通過 為什麽equals() 方法需要重寫?判斷連個對象在邏輯上是否相等,如果根據類成員變量來判斷兩個的實力是否相等,而繼承Object中的 equals 方法只能判斷兩個引用變量是否是同一個對象。這樣我們往往需要

Java重寫構造方法

public class TestSuper { public static void main(String[] args) { new ChildClass("alex", 10, 198).f(); } } class Parent { Parent()

Java重寫equals方法的錯誤——違反對稱性

Java對重寫equals方法有一些約定,其中一條就是要求對稱性,即ab返回true,ba也要返回true。下面的例子就是重寫所範的錯誤。 程式碼: public final class CaseInsensitiveString { private final String s

JavatoString方法和==和equals方法(6.2)

1 toString方法 用System.out.println§;(p為people類的物件)直接輸出物件p時,輸出了一個’類名[email protected] +hashCode值’ System.out的println()方法為什麼只能在控制檯輸出字串,而p為一個物件,怎麼

重寫toString方法的好處

舉例:比如一個java類,未重寫toString方法: public class TableInfo { private String tableID; private String tableName; private int tableSta

記得給類重寫toString()方法

在平時除錯程式碼時,你有沒有碰到過這樣的場景,在IDE里加上斷點,程式碼停在斷點上,你想要檢視某個變數的值,這個變數有時候不是一個基本型別的變數,它多數情況下會是一個物件或者集合。然後,你點選該物件前面的+,展開檢視它內部的各個成員變數的值...... 如果你對上述場景非常熟悉,那麼可以說,

使用commons包和guava包重寫toString()方法

toString()方法經常用來進行除錯或者輸出日誌,一些類還是有必要重寫toString()方法的。idea和eclipse都有重寫toString()方法的快捷鍵,這裡介紹下guava和commons包重寫toString()方法的方式:guava包:使用Objects.

Effective Java -- 重寫equals方法的通用約定(一)

equals() 方法是Object 類的一個非final 方法,在重寫改類的時候我們應該遵循一下五種通用約定: 自反性:對於任何的非null 的引用值 x ,那麼 x.equals(x) 的返回值一定為true。 對稱性:對於任何的非空的引用值 x 和y

JavatoString方法

如何實現 方法 info ack 接收 總結 java nds 被調用   在Java中所有的類都有一個共同的父類Object(默認繼承,不用加extends關鍵字),toString方法就是Object類的一個方法,用來返回該對象的字符串表示形式(個人總結:需要把該類轉換

java重寫equals方法以及hashcode方法

equals方法重寫需要注意以下幾點: 1:自反性:對任意x,x.equals(x)一定返回true。 2:對稱性:對任意x和y,如果y.equals(x)返回true,則x.equals(y)也返回true。 3:傳遞性:對任意的x,y,和,z,如果x

關於java的set方法意義

一直不明白為什麼有的未定義過set方法的集合要在上面先定義一個同樣型別的集合作為容器,然後把操作過的資料再一個個裝回來 @Test public void libraryTest(){ ArrayList<String

JAVAtoString方法的一個小例子

為什麽 str mage void code span 例子 image 連接 Object是一個抽象類,他有很有方法,其中的toString方法是我們常見的一個方法,我們可以看這段代碼 package com.com.day1;public class ToStri

JAVA重寫equals()方法的同時要重寫hashcode()方法

內存地址 his mov bool args 變量 維護 log obj object對象中的 public boolean equals(Object obj),對於任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象時,此方法才返回 true;註意:當此方法