程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的toString()方法

Java的toString()方法

編輯:關於JAVA

Java 基礎內容

toString方法我們處處都用到,是一個很重點的小知識,這裡大概講一下:

我們查閱 API文檔,查看java.lang.Object類的toString方法的詳細描述是這樣的:

toString

public String toString()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

getClass().getName() + '@' + Integer.toHexString(hashCode())

Returns:

a string representation of the object.

我們大概翻譯一下:

返回一個能夠代表這個對象的字符串。一般而言,toString方法返回這個 對象的“文本表達式”。這個返回的結果很簡潔但是不是易於人們閱讀的信息表達式。這裡推薦大家在使用的 子類的時候重寫該方法。

對於Object這個類而言,toString方法返回值是由所屬類的類名、一個“@” 符號和這個對象哈希碼的無符號十六進制表達式組成的。換句話說,這個方法返回的字符串等同於下面的方法 返回的值:

   getClass().getName()+ '@' + Integer.toHexString(hashCode ())

返回:

   這個對象的字符串表達式

我們再看看java.lang.String類中的 toString方法,看看是否一樣呢

toString

public String toString()

This object (which is already a string!) is itself returned.

Specified by:

toString in interface CharSequence

Overrides:

toString in class Object

Returns:

the string itself.

我們還是 翻譯一下吧:

這個對象自己(它已經是一個字符串了)就是返回值

說明:

CharSequence接口中的toString方法

重寫:

重寫了Object中的toString方法

返回:

自己本身的字符串

我們可以看到,String類繼承Object類,並且重寫了toString 方法,也就是說他有自己的toString方法,它返回一個自己本身的字符串,而自己本身就是字符串對象,這樣 就不會出現一推哈希碼了。

在這裡為了更加明確,我們從“說明”中看到,String中toString方法是 CharSequence接口的toString方法,那我們看一看java.lang.CharSequence接口的toString方法的定義:

toString

String toString()

Returns a string containing the characters in this sequence in the same order as this sequence. The length of the string will be the length of this sequence.

Overrides:

toString in class Object

Returns:

a string consisting of exactly this sequence of characters

我們還是翻譯一下:

返回一個字符串,該字符串包含了與這個序列順序相同的 所有字符。字符串的長度就是該序列的長度

重寫:

Object的toString

返回:

由該序列的特定 的字符組成的字符串

在C語言中,string就是char[]數組,在Java中也是一樣,它也是有字符數組定義的, 上面的序列我們可以理解為字符數組

從上面我們可以看出很多類中的toString方法都改變了,我們可 以做一個實驗,我們把一個類的toString方法改變一下

我們起這個類的名字叫做 TestObject

public class TestObject extends Object{

       public static void main(String[] args) {

               TestObject ns = new TestObject();

               System.out.println (ns);

       }

}

這個類的輸出結果應該是 類名@哈希碼 : TestObject@de6ced (注意:哈希碼是不固定的)

我們把這個類的toString方法改變一下

public class TestObject extends Object{

               public String toString() {

                            return "我是一個類!";

               }

       public static void main(String[] args) {

               TestObject ns = new TestObject();

               System.out.println (ns);

       }

}

之後我們在運行就發現結果是 "我是一個類!"

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved