博客
关于我
Object toString方法
阅读量:478 次
发布时间:2019-03-06

本文共 1510 字,大约阅读时间需要 5 分钟。

Java中的toString方法及其应用

在Java编程中,toString方法是Object类的一个重要方法,用于将对象转换为字符串表示。这种转换在日常编程中非常有用,尤其是在打印或显示对象信息时。以下将详细探讨Java中的toString方法及其应用。

1. toString方法的默认行为

当我们在System.out.println()中直接使用一个对象作为参数时,系统会自动调用该对象的toString方法,将其转换为字符串。例如:

Dog dog = new Dog();
System.out.println(dog); // 调用dog的toString方法

如果Dog类没有重写toString方法,默认的行为是返回类名和对象的哈希值。例如:

class Dog {
public String toString() {
return "Dog@ hash"; // 这是默认的实现
}
}

当dog对象被打印时,输出将类似于:

Dog@ hash

如果Dog类重写了toString方法:

public String toString() {
return "I am a cool dog";
}

那么打印结果将是:

I am a cool dog

2. 字符串连接的正确方式

在Java中,字符串连接有特定的规则:

  • 使用单引号引起来的字符(')表示字符类型。
  • 使用双引号引起来的字符串("")表示字符串类型。
  • 对象不能直接作为参数传递给System.out.println(),除非它实现了toString方法。

例如:

String str = "Hello" + new TestToString();  // 正确
System.out.println("Hello" + new TestToString()); // 正确

如果直接使用对象:

System.out.println(new TestToString());  // 错误

会因为TestToString不实现toString方法而无法编译。

3. 自定义对象的toString方法

为了实现自定义的字符串表示,可以在类中重写toString方法:

public class TestToString {
public static void main(String[] args) {
String str = "" + new TestToString();
System.out.println(str);
}
}

如果TestToString类没有重写toString方法,打印结果将显示类名和哈希值:

TestToString@6e00321

如果重写了toString方法:

public class TestToString {
@Override
public String toString() {
return "My custom toString method";
}
}

打印结果将是:

My custom toString method

注意事项

  • 正确使用字符串连接:避免使用不正确的字符串连接方式,否则可能导致编译错误。
  • 重写toString方法:如果需要自定义对象的字符串表示,务必在类中重写toString方法。
  • 遵循Java编码规范:确保代码清晰易读,避免不必要的复杂化。

通过以上方法,开发者可以更好地控制对象的字符串表示,提升代码的可读性和维护性。

转载地址:http://cgtbz.baihongyu.com/

你可能感兴趣的文章
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>