java tostring() 函数 总结!

本文详细解释了Java中Object类的toString()方法的功能及其默认行为,并介绍了如何通过重写此方法来自定义对象的字符串表示形式,以便更好地进行输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API定义:

toString

public String toString()
返回该对象的字符串表示。通常, toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())
 

返回:
该对象的字符串表示形式。
 
理解:
toString()方法在Object类里边定义,你调用System.out.println();这个方法的时候,如果传进去的参数是一个对象,它默认会调用Object类的toString()方法,也就是输出"类名@hashcode()",这样的格式.

而如果你要建立自己的格式,以输出,就需要重写toString()方法.
这样调用System.out.println();方法的时候就会调用你自己的toString(); 
 
java的内部机制,当你直接使用System.out.println输出一个对象时,java会自动调用该对象的toSring()方法 

### Java 常用函数汇总及使用方法 Java 作为一种广泛使用的编程语言,提供了丰富的内置函数和类库。以下是 Java 中常用的一些函数及其使用示例。 #### 1. Object 类的 toString 方法 在 Java 中,`Object` 类的 `toString()` 方法返回一个字符串,格式为 `类名@地址值`,即 `getClass().getName() + '@' + Integer.toHexString(hashCode())`。建议在自定义类中重写此方法以提供更有意义的信息。例如: ```java public class Person { private String name; private int age; // 构造方法和其他字段... @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } ``` IDEA 中可以通过 `Alt + Insert` 快捷键快速生成 `toString()` 方法 [^1]。 #### 2. Objects 工具类 `java.util.Objects` 提供了许多静态方法来操作对象,比如 `equals()`、`hashCode()` 和 `toString()` 等。这些方法可以避免空指针异常,并且简化了对象的操作。 ```java import java.util.Objects; public class Example { public static void main(String[] args) { String str = null; System.out.println(Objects.toString(str, "default")); // 输出 default } } ``` #### 3. 数学运算函数 Java 提供了多种数学运算函数,如最大公约数(GCD)计算。下面是一个将递归实现转换为循环形式的例子: ```java public static int gcd(int a, int b) { int c = 0; while (b != 0) { c = a % b; a = b; b = c; } return a; } ``` 这个例子展示了如何通过循环而不是递归来计算两个整数的最大公约数 [^2]。 #### 4. 字符串处理 Java 提供了 `String` 类来处理字符串,包括拼接、分割、替换等操作。此外,还可以使用 `StringBuilder` 或 `StringBuffer` 来进行高效的字符串修改操作。 ```java public class StringExample { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("Hello "); sb.append("World"); System.out.println(sb.toString()); // 输出 Hello World } } ``` #### 5. 输入输出流 Java 的 I/O 包含了多种输入输出流,用于文件读写操作。例如,`FileInputStream` 和 `FileOutputStream` 用于字节流操作,而 `FileReader` 和 `FileWriter` 用于字符流操作。 ```java import java.io.*; public class FileIOExample { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new FileReader("input.txt")); BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt")); String line; while ((line = reader.readLine()) != null) { writer.write(line); writer.newLine(); } reader.close(); writer.close(); } } ``` 这段代码演示了如何使用缓冲读取流和缓冲写入流来进行文件内容的复制 [^5]。 #### 6. 其他实用工具类 除了上述提到的类之外,Java 还提供了其他许多有用的工具类,如 `Arrays` 用于数组操作,`Collections` 用于集合操作等。 ```java import java.util.Arrays; public class ArraysExample { public static void main(String[] args) { int[] numbers = {5, 2, 8, 1, 9}; Arrays.sort(numbers); // 排序数组 System.out.println(Arrays.toString(numbers)); // 输出排序后的数组 } } ``` 以上是 Java 中一些常用的函数和类的简要介绍及示例。每种方法都有其特定的应用场景,了解它们可以帮助开发者更高效地编写程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值