1. 程式人生 > >重寫toString()方法

重寫toString()方法

 學習Java的人都知道,Java所有類都是object的子類。所以,所有的Java物件都可以呼叫object類提供的方法。其中,toString()就是其中一個。下面講解一下為什麼會有重寫toString()方法一說。

首先,我們先來建立一個Persion類,它只簡單的包含 firstname 和 lastname,當然,加上它的setter 和 getter 法。放在com.bean包下:

package com.bean;

public class Persion {
	private String firstname;
	private String lastname;
	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}
	public String getLastname() {
		return lastname;
	}
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}

}

 接下來,新建一個類,名為Test,讓它包含main函式:

package com.override;

import com.bean.Persion;
public class Test {

	public static void main(String[] args) {
		Persion p = new Persion();
		p.setFirstname("Fire");
		p.setLastname("Water");
		System.out.println(p.toString());
	}

}

 可以看到,執行之後,結果為:

[email protected]

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

 但是我們一般想要的結果並不是這樣,因為object類的toString()方法總是返回物件的實現類類名 + @ + hashCode值。這顯然不能滿足我們的需求。像這裡,我們是希望能打印出p的全名出來,這時,就需要重寫toString()方法,因為重寫了toString()之後,那麼p在呼叫toString()方法的時候,會優先呼叫自己類裡的toString()方法。

修改後的類如下:

package com.bean;

public class Persion {
	private String firstname;
	private String lastname;
	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}
	public String getLastname() {
		return lastname;
	}
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
                //重寫toString方法
	public String toString(){
		return firstname + " " + lastname;
	}
}

這時,打印出來的結果就是

Fire Water

當然,可根據不同的需求來編寫如何列印物件。

相關推薦

重寫toString方法

 學習Java的人都知道,Java所有類都是object的子類。所以,所有的Java物件都可以呼叫object類提供的方法。其中,toString()就是其中一個。下面講解一下為什麼會有重寫toString()方法一說。 首先,我們先來建立一個Persion類,它只簡

JAVA中Object類的toString方法

toString public String toString() 返回該物件的字串表示。通常,toString 方法會返回一個“以文字方式表示”此物件的字串。結果應是一個簡明但易於讀懂的資訊表示式。建議所有子類都重寫此方法。 Object 類的 toS

為什麼在重寫equals方法時,一般都會重寫HashCode方法

重寫equals()方法主要是為了方便比較兩個物件內容是否相等。hashCode()方法用於返回呼叫該方法的物件的雜湊碼值,此方法將返回整數形式的雜湊碼值。 一個類如果重寫了 equals()方法,通常也有必要重寫 hashCode()方法,目的是為了維護hashCode()方法的常規協定,

Collections.sort 重寫compare方法

Comparator是個介面,主要比的是兩個物件,比較規則是自己寫的,可以重寫他的compare()和equals()這兩個方法,也就是說比較的方法。如果是Null的話,就是使用元素的自然順序,如1

Arrays的toString方法

String[] arg ={"a", "b", "c", "d"};// 結果 [a, b, c, d]System.out.print(Arrays.toString(arg)); JAVA原始碼中,Arrays裡有很多toString()方法,long、int、short、char、byte、boo

陣列Array的toString方法與a == 1 && a == 2 && a == 3

如何讓a == 1 && a == 2 && a == 3成立,首先想到的是陣列。我們知道當複雜型別資料與基本型別資料作比較時會發生隱性轉換,那麼,當a是一個數組時,a == 1,陣列a就會呼叫它的toString方法,而陣列的toString

詳解每個類中toString方法

在我們定義一個類的時候都會建立一個String 型別的toString()方法那麼這個方法真正的作用及原理,為什麼在輸出類變數的時候會輸出toString()的返回值 1我們定義的類預設的父類是Object型別,請看下面的原始碼  public void println(O

在定義類時,何時需要重寫Object類中equals方法

在比較兩個物件時可以使用==和 equals()。==用於比較兩個物件的引用地址是否相等,而equals()方法主要用於比較兩個物件的內容是否相等。和equals()的差別請參見“和equals()有什麼區別?”的解答。 在 Object 中已定義了 equals()方法,但是該方法直接採用

為什麼一個好的類需要覆寫toString、hashCode、equals方法

第一:覆寫Object類中的toString方法public class Client { public static void main(String[] args) { System.out.println(new Person("張三"

通過重寫Thread的run方法顯示新執行緒

前面提到過有一種Runnable介面顯示執行緒的方法,還有一種是通過重寫Thread的run()方法顯示的: 首先定義一個類繼承Thread類,然後重寫run()方法 public class TestThread { public static void main(

Java中關於==和equal的區別以及equals方法重寫

例子i: string1="aaa"; string2="aaa"; String string3=new String("aaa"); String string4=new String("aaa"); string1==string2 // true; . string1.equals(string2)

Java學習筆記13equals方法toString()方法

test pre 輸出 setname ring ash rgs println pub equals()方法;   equals方法是Object類中的方法;Object是所有類的祖宗,所以所有類都有equals()方法;   boolean equals(Objec

js寫css方法,記得加引號“ ”,除非是數字

pos 引號 index size z-index roi absolut fff dex js寫css()方法,記得加引號“ ”,除非是數字。如: $("#android").css({ "position": "absolute", "z-index":

java—toString

int class cnblogs sys 需要 lis tostring style system 如何返回一個類的名字 public class second { public static void main(String[]args){ P

ValueOftoString

bsp 就會 轉化 log turn func spa 需要 數值 var colors = ["red", "blue", "green"]; // 創建一個包含3 個字符串的數組 console.log(colors.toString()); // red,blue,

ArrayList中remove方法刪除長度大於5的元素之後下標重定位的問題

com 有一個 fad 就刪除 成了 位置 p s cnblogs 中心 1、問題闡述 需求: 有一個ArrayList數組,要求刪除長度大於5的字符串,如:arr = {"ab1","123ad","bca","dadfadf","dddaaa","你好啊","我來

== 與 equals方法的區別

return 使用 自定義類 [] true 適用於 內容 lean 編譯 * equals()方法的使用 * * 1.java.lang.Object類中的equals()方法的定義: * * public boolean equals(Object obj

createTextNode() 方法和createTextNode方法

script 屬性 tno tle html creat uno 按鈕 文本節點 <!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鳥教程(runoo

ArrayList排序Sort方法(轉)

ray list pro 簡單 read 排序 adl array 簡單的 //使用Sort方法,可以對集合中的元素進行排序。Sort有三種重載方法,聲明代碼如下所//示。 public void Sort(); //使用集合元素的比較方式進行排序 public vo

seek方法的使用

sheng aaa pla () 有時 lose ans adding ati seek()方法用於移動文件讀取指針到指定位置。 file.seek()方法標準格式是:file.seek(offset,whence) offset:開始的偏移量,也就是代表需要移動偏