java tostring方法重写代码示例
作者:谭墨墨快乐 时间:2022-12-31 22:38:07
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法
默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址 如果想自定义输出信息必须重写toString()方法
注意事项
1.必须被声明为public
2.返回类型为String
3.方法的名称必须为toString,且无参数
4.方法体中不要使用输出方法System.out.println()
import java.util.*;
public class TreeSetTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SortedSet<Item> parts=new TreeSet<Item>();
parts.add(new Item("Toaster", 1234));
parts.add(new Item("Widget", 4562));
parts.add(new Item("Modem", 9912));
System.out.println(parts);
SortedSet<Item> sortByDescription=new TreeSet<Item>(new
Comparator<Item>()
{
public int compare(Item a, Item b)
{
String descrA=a.getDescription();
String descrB=b.getDescription();
return descrA.compareTo(descrB);
}
});
sortByDescription.addAll(parts);
System.out.println(sortByDescription);
}
}
class Item implements Comparable<Item>
{
public Item(String aDescription, int aPartNumber)
{
description=aDescription;
partNumber=aPartNumber;
}
public String getDescription()
{
return description;
}
public boolean equals(Object otherObject)
{
if(this==otherObject)
return true;
if(otherObject==null)
{
return false;
}
if (getClass()!=otherObject.getClass())
{
return false;
}
Item other=(Item)otherObject;
return description.equals(other.description)&&
partNumber==other.partNumber;
}
public int hashCode()
{
return 13*description.hashCode()+17*partNumber;
}
public int compareTo(Item other)
{
return partNumber-other.partNumber;
}
private String description;
private int partNumber;
}
输出为:
[Item@8c9e3a56, Item@d780c206, Item@39c021ba]
[Item@39c021ba, Item@8c9e3a56, Item@d780c206]
Item重载toString()方法后:
import java.util.*;
public class TreeSetTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SortedSet<Item> parts=new TreeSet<Item>();
parts.add(new Item("Toaster", 1234));
parts.add(new Item("Widget", 4562));
parts.add(new Item("Modem", 9912));
System.out.println(parts);
SortedSet<Item> sortByDescription=new TreeSet<Item>(new
Comparator<Item>()
{
public int compare(Item a, Item b)
{
String descrA=a.getDescription();
String descrB=b.getDescription();
return descrA.compareTo(descrB);
}
});
sortByDescription.addAll(parts);
System.out.println(sortByDescription);
}
}
class Item implements Comparable<Item>
{
public Item(String aDescription, int aPartNumber)
{
description=aDescription;
partNumber=aPartNumber;
}
public String getDescription()
{
return description;
}
public String toString()
{
return "[description="+description
+",partNumber="+partNumber+"]";
}
public boolean equals(Object otherObject)
{
if(this==otherObject)
return true;
if(otherObject==null)
{
return false;
}
if (getClass()!=otherObject.getClass())
{
return false;
}
Item other=(Item)otherObject;
return description.equals(other.description)&&
partNumber==other.partNumber;
}
public int hashCode()
{
return 13*description.hashCode()+17*partNumber;
}
public int compareTo(Item other)
{
return partNumber-other.partNumber;
}
private String description;
private int partNumber;
}
输出为:
[[description=Toaster,partNumber=1234], [description=Widget,partNumber=4562], [description=Modem,partNumber=9912]]
[[description=Modem,partNumber=9912], [description=Toaster,partNumber=1234], [description=Widget,partNumber=4562]]
来源:http://blog.csdn.net/tzasd89812/article/details/21371661
标签:java,tostring
0
投稿
猜你喜欢
SpringBoot请求处理之常用参数注解介绍与源码分析
2023-11-10 10:38:12
IDEA+Maven搭建Spring环境的详细教程
2023-11-25 07:50:34
java基础的详细了解第九天
2022-11-11 20:53:50
Java 运算符详情
2022-02-12 05:54:43
C# LINQ to XML应用介绍
2021-06-11 05:59:07
每天学Java!一分钟了解JRE与JDK
2021-06-13 11:52:41
idea 有时提示找不到类或者符号的解决
2023-11-29 04:10:43
深入分析c# 继承
2023-02-18 21:36:31
C#实现String类型和json之间的相互转换功能示例
2023-06-18 07:35:32
C#四种计时器Timer的区别和用法
2021-10-12 01:31:14
简单的java图片处理类(图片水印 图片缩放)
2022-04-02 03:24:37
Android文件下载进度条的实现代码
2023-02-14 20:08:24
Java 8 中的 10 个特性总结及详解
2023-07-21 00:06:51
Dockerfile 部署java web的环境详解
2021-10-02 00:41:44
JAVA基于数组实现的商品信息查询功能示例
2021-10-31 11:47:23
Android 自定义View之边缘凹凸的优惠券效果的开发过程
2021-12-30 07:25:10
java中 Set与Map排序输出到Writer详解及实例
2022-05-01 07:23:56
Java监听器ActionListener与MouseListener的执行顺序说明
2022-02-04 20:08:23
springboot 无法自动装配的问题
2021-05-29 06:14:30
C# 中的动态创建组件(属性及事件)的实现思路及方法
2021-07-20 04:58:31