time 
设为首页】【收藏本站
当前位置: 主页 > JAVA > JAVA基础 > Java入门 > 关于重写 toString() 方法

关于重写 toString() 方法

时间:2010-02-08 00:34 点击:10834次 字体:[ ]




 学习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

 

当然,可根据不同的需求来编写如何打印对象。



本文地址 : http://www.fengfly.com/plus/view-169125-1.html
标签: 重写 ToString()
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: