当前位置: 首页 > news >正文

网站设计的趋势百度推广官网入口

网站设计的趋势,百度推广官网入口,uc导航,河南安阳滑县疫情最新消息目录 一、toString() 方法是啥? (一)默认的 toString() 方法 (二)toString() 方法的作用 二、为啥要重写 toString() 方法? (一)提高代码的可读性 (二)…

目录

一、toString() 方法是啥?

(一)默认的 toString() 方法

(二)toString() 方法的作用

二、为啥要重写 toString() 方法?

(一)提高代码的可读性

(二)方便调试

三、如何重写 toString() 方法?

(一)重写的规则

(二)代码示例

四、toString() 方法重写的最佳实践

(一)包含关键属性信息

(二)保持格式的一致性和简洁性

(三)考虑对象的嵌套关系

五、toString() 方法与其他方法的配合使用

(一)与 equals() 和 hashCode() 方法的关系

(二)在日志记录中的应用

53d23192fb924f4390623c30f19b948f.jpeg

宝子们,今天咱要好好唠唠 Java 里一个看似不起眼,但实则用处很大的知识点 ——toString() 方法的重写。在 Java 的世界中,当我们想要直观地了解一个对象的信息时,toString() 方法就派上用场了。不过呢,默认的 toString() 方法有时候可能不太能满足我们的需求,这时候就需要对它进行重写啦。

一、toString() 方法是啥?

(一)默认的 toString() 方法

每个 Java 类都默认继承自 java.lang.Object 类,而 Object 类中就有这个 toString() 方法。当我们创建一个对象,然后直接打印这个对象时,实际上调用的就是它的 toString() 方法。比如说:

认真学哦,掌握这些知识,就像看小说一样,你会越来越强大。

class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public static void main(String[] args) {Person person = new Person("张三", 25);// 这里直接打印 person 对象,会调用其 toString() 方法System.out.println(person);}
}

在这个例子中,如果我们没有重写 toString() 方法,打印出来的结果可能是类似 Person@15db9742 这样一串不太好理解的字符串,这其实是对象的默认哈希码表示形式,对于我们了解对象的具体内容没啥太大帮助。

(二)toString() 方法的作用

toString() 方法的主要作用就是返回一个能代表对象状态的字符串。当我们在调试程序或者需要将对象的信息以一种可读的方式展示出来时,它就非常重要了。比如在日志记录中,我们可能需要记录某个对象的详细信息,这时候一个合适的 toString() 方法就能让我们快速了解对象的各个属性值,而不是看到一堆乱码一样的哈希码。

二、为啥要重写 toString() 方法?

(一)提高代码的可读性

想象一下,我们在一个大型项目中,有很多地方都需要打印对象的信息来进行调试或者查看数据的状态。如果不重写 toString() 方法,看到的都是那些默认的哈希码,根本不知道对象里面到底存了些啥数据。但如果我们重写了 toString() 方法,就可以按照我们想要的格式返回对象的属性信息,比如对于一个 Student 对象,我们可以让 toString() 方法返回 “学生姓名:[具体姓名],年龄:[具体年龄],成绩:[具体成绩]” 这样清晰明了的字符串,这对于我们快速了解学生对象的情况就非常方便,大大提高了代码的可读性。

(二)方便调试

在调试程序的时候,我们经常需要查看各种对象的状态,看看数据是否正确地被赋值和修改。如果能够通过重写 toString() 方法,将对象的关键属性信息以一种直观的方式展示出来,那么在调试过程中就能更快地发现问题所在。比如在一个电商系统中,对于一个 Order 对象,重写 toString() 方法返回订单号、商品列表、总价等信息,当出现订单问题时,我们可以很容易地通过打印 Order 对象来查看这些关键信息,从而更快地定位和解决问题。

三、如何重写 toString() 方法?

(一)重写的规则

  • 方法签名:必须和 Object 类中的 toString() 方法签名完全一致,也就是 public String toString()。这是 Java 重写方法的基本规则,保证了在运行时能够正确地调用子类重写后的方法。
  • 返回值:返回一个字符串,这个字符串要能够准确地描述对象的状态。通常我们会将对象的各个属性值以一种合理的格式组合成一个字符串返回。
  • 访问权限:一般将其声明为 public,这样在任何需要使用该对象的地方都能够方便地调用 toString() 方法获取对象的信息。

(二)代码示例

class Book {private String title;private String author;private double price;public Book(String title, String author, double price) {this.title = title;this.author = author;this.price = price;}// 重写 toString() 方法@Overridepublic String toString() {return "Book{" +"title='" + title + '\'' +", author='" + author + '\'' +", price=" + price +'}';}public static void main(String[] args) {Book book = new Book("Java 编程思想", "Bruce Eckel", 89.9);// 现在打印 book 对象,会调用重写后的 toString() 方法,输出详细的书籍信息System.out.println(book);}
}

在这个例子中,我们重写了 Book 类的 toString() 方法,将书籍的标题、作者和价格等属性以 “Book {title='[具体标题]', author='[具体作者]', price=[具体价格]}” 的格式返回。这样,当我们打印 Book 对象时,就能清晰地看到书籍的详细信息,而不是那个让人摸不着头脑的默认哈希码。

四、toString() 方法重写的最佳实践

(一)包含关键属性信息

在重写 toString() 方法时,要确保包含对象的关键属性信息,这些信息能够完整地描述对象的状态。比如对于一个 Employee 类,除了员工的姓名、年龄等基本信息外,如果员工还有职位、部门等重要属性,也应该包含在 toString() 方法返回的字符串中,这样才能在查看员工对象信息时全面了解其情况。

class Employee {private String name;private int age;private String position;private String department;public Employee(String name, int age, String position, String department) {this.name = name;this.age = age;this.position = position;this.department = department;}@Overridepublic String toString() {return "Employee{" +"name='" + name + '\'' +", age=" + age +", position='" + position + '\'' +", department='" + department + '\'' +'}';}
}

(二)保持格式的一致性和简洁性

  • 一致性:如果一个项目中有多个类都重写了 toString() 方法,尽量保持格式的一致,这样在查看不同对象的信息时,能够更加清晰地进行对比和分析。例如,都采用 “类名 {属性 1 = 值 1, 属性 2 = 值 2,...}” 这样的格式,让开发者能够快速适应和理解每个类的 toString() 方法返回的信息结构。
  • 简洁性:不要在 toString() 方法中返回过于复杂或者冗长的字符串,要突出重点,只包含必要的属性信息。避免在方法中进行复杂的计算或者逻辑处理,因为 toString() 方法的主要目的是提供对象的简要信息,而不是执行复杂的业务逻辑。

(三)考虑对象的嵌套关系

如果一个对象中包含其他对象作为属性,比如一个 Order 类中包含多个 Item 对象(代表订单中的商品项),在重写 Order 类的 toString() 方法时,要考虑如何合理地展示这些嵌套对象的信息。可以采用简洁的方式,比如只显示每个 Item 对象的关键信息(如商品名称和数量),或者提供一个方法让用户可以进一步查看 Item 对象的详细信息,而不是在 Order 的 toString() 方法中展开所有的嵌套对象细节,导致字符串过于复杂难以阅读。

class Item {private String name;private int quantity;public Item(String name, int quantity) {this.name = name;this.quantity = quantity;}@Overridepublic String toString() {return "Item{" +"name='" + name + '\'' +", quantity=" + quantity +'}';}
}class Order {private List<Item> items;public Order(List<Item> items) {this.items = items;}@Overridepublic String toString() {StringBuilder sb = new StringBuilder("Order{");for (Item item : items) {sb.append(item.toString()).append(", ");}if (sb.length() > "Order{".length()) {sb.setLength(sb.length() - 2);}sb.append('}');return sb.toString();}
}

在这个例子中,Order 类的 toString() 方法通过循环将每个 Item 对象的 toString() 方法返回的字符串连接起来,展示了订单中包含的商品项信息,既简洁又能让用户对订单的内容有一个大致的了解。

五、toString() 方法与其他方法的配合使用

(一)与 equals() 和 hashCode() 方法的关系

在 Java 中,当我们重写 equals() 方法来判断两个对象是否相等时,通常也需要重写 hashCode() 方法,以保证对象在哈希表中的正确存储和查找。而 toString() 方法也可以与这两个方法配合使用,提供更全面的对象比较和信息展示功能。
例如,如果两个 Person 对象的 equals() 方法判断它们的姓名和年龄都相等,那么它们的 hashCode() 方法应该返回相同的值,并且它们的 toString() 方法返回的信息也应该能够反映出这种相等关系,让开发者在调试和查看对象信息时能够更加清晰地理解对象的状态和相等性判断逻辑。

class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass()!= o.getClass()) return false;Person person = (Person) o;return age == person.age && Objects.equals(name, person.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}

(二)在日志记录中的应用

在进行日志记录时,toString() 方法可以与日志框架(如 Log4jSlf4j 等)配合使用,方便地记录对象的详细信息。例如:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class LoggingExample {private static final Logger logger = LoggerFactory.getLogger(LoggingExample.class);public static void main(String[] args) {Person person = new Person("李四", 30);// 使用日志框架记录 Person 对象的信息,会自动调用 toString() 方法logger.info("创建了新的 Person 对象:{}", person);}
}

在这个例子中,当我们使用日志框架记录 Person 对象时,toString() 方法会被自动调用,将对象的信息以一种可读的方式记录到日志中,方便后续查看和分析程序的运行状态。

宝子们,toString() 方法的重写虽然看起来不是很难,但在实际的 Java 编程中却有着重要的作用,能够大大提高我们代码的可读性、调试效率以及与其他方法和框架的配合效果。希望通过这篇文章,大家都能掌握 toString() 方法重写的技巧和最佳实践,写出更加优秀的 Java 代码。如果在学习过程中还有什么疑问或者想要深入探讨的地方,随时回来看看这篇文章,或者查阅更多的相关资料哦。

3744227198204a6189b6b3995a3f467b.jpeg

 

http://www.15wanjia.com/news/9949.html

相关文章:

  • 如何建立一个网站根目录站长工具收录
  • 旅游网站策划书范文游戏推广员每天做什么
  • 江门网站设计价格做引流推广的平台
  • 武汉做医院网站公司最近比较火的关键词
  • 类似wordpress的网站seo推广系统
  • 如何看织梦做的网站的源码网站的优化和推广方案
  • 免费平面设计模板网站百度运营公司
  • 遵义市网站建设竞彩足球最新比赛
  • 南京时事重大新闻广州seo网站服务公司
  • 网站结构怎么做适合优化产品网络营销分析
  • 建设网站对企业的重要性网络营销岗位职责和任职要求
  • 西安网站制作sxyun优化资讯
  • 企业网站开发哪个好薇哪里注册域名最便宜
  • 使用webp的网站九江seo
  • 怎么把危险网站sem是什么电镜
  • 网站开发使用数据库的好处百度词条优化工作
  • 品牌视觉识别系统案例抖音seo查询工具
  • 中国知名网站建设公司投放广告找什么平台
  • 俄语好网站设计网络营销的核心是
  • 怎么做自己的网站弄商城佣金长沙网站seo
  • 厦门专业做网站公司如何做好产品网络推广
  • 压铸东莞网站建设营销型网站建设案例
  • 继续访问这个网站网络营销的推广手段
  • 网站被人做跳转了seo排名优化推广报价
  • 前端做企业网站百度首页纯净版怎么设置
  • 哈尔滨网站开发联系薇许昌网络推广公司
  • t.cn这种网站怎么做的网上广告宣传怎么做
  • 网站开发所需技能seo优化教程培训
  • 网站评论管理怎么做的搜索网站排行榜
  • 做营利网站的风险企业网站建设要多少钱