java 中重寫toString()方法


toString()方法 一般出現在System.out.println(類名.toString());

toString()是一種自我描述方法 本身返回的是 getClass().getName() + "@" +Integer.toHexString(hashCode());

也就是 類名 + @ +hashCode的值

重寫toString() 只會對類生效,並不能字符串生效; 例如

 1 public class pratise {
 2     String num="aaaa";
 3     public String toString(){
 4         return num;
 5     }
 6    public static void main(String[] args){
 7        String s1="111";
 8        System.out.println(s1.toString()); 
 9        //輸出111 而並非aaaa;
10    }
11 }
View Code

 

重寫toString()對類生效

package com.stu;

//用toString 重寫一個類
public class Car {
	
   //成員變量
	private String carNo;
	private String carName;
	private String color;
	private double price;
	
   //有參構造函數
	Car(String carNo,String carName,String color,double price){
		this.carNo=carNo;
		this.carName=carName;
		this.color=color;
		this.price=price;
	}
	
	//get set方法
	public String getCarNo(){
		return carNo;
	}
	
	public void setCarNo(String carNo){
		this.carNo=carNo;
	}
	
	public String getCarName() {
		return carName;
	}

	public void setCarName(String carName) {
		this.carName = carName;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}
	
//重寫toString(); public String toString(){ return "這個汽車名叫 "+carName+",型號是 "+carNo+",汽車顏色 "+color+",價格 "+price; } public static void main(String[] args){ //創建一個Car的對象 Car myCar=new Car("蘇A 4995","長安汽車","灰藍色",70000.00); //類名開頭字母大寫 System.out.println(myCar.toString()); } }

 輸出結果:

假如不對toString()進行重寫則 輸出結果:

 com.stu.Car@2542880d  ==> 類名 + “@” +hashCode值

 

2.為什么要重寫toString()方法

在Object類里面定義toString()方法的時候返回的對象的哈希code碼,這個hashcode碼不能簡單明了的表示出對象的屬性。所以要重寫toString()方法。
當需要將一個對象輸出到顯示器時,通常要調用他的toString()方法,將對象的內容轉換為字符串.java中的所有類默認都有一個toString()方法。
默認情況下 System.out.println(對象名)或者System.out.println(對象名.toString())輸出的是此對象的類名和此對象對應內存的首地址如果想自定義輸出信息必須重寫toString()方法。

 

注意事項:

1.必須被聲明為public

2.返回類型為String

3.方法的名稱必須為toString,且無參數

4.方法體中不要使用輸出方法System.out.println()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM