Java toString的使用
1 package com.bytezreo.objectclass; 2 3 import java.util.Date; 4 5 /** 6 * 7 * @Description Object类中toString的方法 8 * @author Bytezero·zhenglei! Email:420498246@qq.com 9 * @version 10 * @date 2021年9月24日下午2:20:19 11 * @ Object类中toString的方法 12 * 13 * 1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法 14 * 15 * 2.Object类中toString()的定义: 16 * public String toString() { 17 return getClass().getName() + "@" + Integer.toHexString(hashCode()); 18 } 19 * 20 * 3.像String,Date,File,包装类等都重写了Object类中的toString()方法 21 * 使得在调用对象的toString()时,返回“实体内容” 信息 22 * 23 * 4.自定义类也可以重写 toString() 方法,当调用此方法时,返回对象的“实体内容” 24 * 25 * 26 * 27 * 28 * 29 * 30 * 31 */ 32 public class ToString 33 { 34 public static void main(String[] args) { 35 36 Customer cust1 = new Customer("Tom",21); 37 38 //没重写 39 // System.out.println(cust1.toString()); //地址值 40 // System.out.println(cust1); //地址值 41 42 43 // 重写以后 44 System.out.println(cust1.toString()); //实体内容 45 System.out.println(cust1); //实体内容 46 47 String str = new String("zhenglei"); 48 System.out.println(str); //zhenglei 49 50 51 Date date = new Date(45454545445455L); 52 System.out.println(date.toString()); 53 } 54 }
1 package com.bytezreo.objectclass; 2 3 import java.util.Objects; 4 5 public class Customer 6 { 7 private String name; 8 private int age; 9 public String getName() { 10 return name; 11 } 12 public void setName(String name) { 13 this.name = name; 14 } 15 public int getAge() { 16 return age; 17 } 18 public void setAge(int age) { 19 this.age = age; 20 } 21 public Customer() { 22 super(); 23 } 24 public Customer(String name, int age) { 25 super(); 26 this.name = name; 27 this.age = age; 28 } 29 30 31 32 //自动生成 equals() 方法 33 @Override 34 public boolean equals(Object obj) { 35 System.out.println("执行自动重写 equals()方法:"); 36 if (this == obj) 37 return true; 38 if (obj == null) 39 return false; 40 if (getClass() != obj.getClass()) 41 return false; 42 Customer other = (Customer) obj; 43 return age == other.age && Objects.equals(name, other.name); 44 } 45 46 47 //手动实现 equals() 48 //重写原则:比较两个对象的实体内容是否相同 49 50 // @Override 51 // public boolean equals(Object obj) 52 // { 53 // System.out.println("执行手动重写 equals()方法:"); 54 // if (this == obj) 55 // { 56 // return true; 57 // } 58 // if(obj instanceof Customer) 59 // { 60 // Customer cust = (Customer)obj; 61 // //比较两个对象的每个属性是否都相同 62 //// if(this.age == cust.age && this.name.equals(cust.name)) 63 //// { 64 //// return true; 65 //// } 66 //// else 67 //// { 68 //// return false; 69 //// } 70 // 71 // //或者 72 // return this.age == cust.age && this.name.equals(cust.name); 73 // 74 // 75 // } 76 // return false; 77 // } 78 // 79 80 81 82 //手动写的 83 //@Override 84 //public String toString() { 85 // 86 // return "Customer[name ="+name+",age = "+ age+"]"; 87 // 88 //} 89 90 91 //自动写的 92 93 @Override 94 public String toString() { 95 return "Customer [name=" + name + ", age=" + age + "]"; 96 } 97 98 99 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15330327.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)