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
  • asp之家 软件编程 m.aspxhome.com