Java重写toString()方法(附带实例)
在 Java 程序中,为了方便处理日志输出等,所有的对象都可以以文本方式表示,需要在该对象所在类中重写 toString() 方法。如果没有重写 toString() 方法,默认的字符串是“类名@对象的十六进制哈希码”。
下面看一个示例,该示例声明一个 Person 类,具体代码如下:
代码第 ① 处声明了一个名为 Person 的类。这个类用于表示人员的信息。
代码第 ② 处重写 Person 类的 toString() 方法。toString() 方法是 Java 中的一个内置方法,它用于将对象转换成字符串表示。在重写时使用的是字符串拼接的方式,将人员的姓名和年龄格式化成一个字符串,并将其返回。
代码第 ③ 处是 Main 类的入口方法 main(),它是程序的起点。在这个方法中,创建了两个 Person 对象 person1 和 person2,分别用于表示 Alice 和 Bob 这两个人员。
代码第 ④ 处中使用 System.out.println() 方法打印输出 person1 对象。由于 System.out.println() 方法会自动调用对象的 toString() 方法来获取字符串表示,因此在输出 person1 时实际上会调用 person1.toString() 方法,并将其返回的字符串打印出来。
代码第 ⑤ 处中使用 System.out.println() 方法打印输出 person2 对象。同样,由于 System.out.println() 方法会自动调用对象的 toString() 方法来获取字符串表示,因此在输出 person2 时,实际上会调用 person2.toString() 方法,并将其返回的字符串打印出来。
下面看一个示例,该示例声明一个 Person 类,具体代码如下:
class Person { // ① 声明 Person 类 String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } // 重写 toString()方法 @Override public String toString() { // ② return "Person [name=" + name + ", age=" + age + "]"; } } public class Main { public static void main(String[] args) { // ③ Person person1 = new Person("Alice", 25); Person person2 = new Person("Bob", 30); System.out.println(person1); // ④ 输出:Person [name=Alice, age=25] System.out.println(person2); // ⑤ 输出:Person [name=Bob, age=30] } }程序的运行结果如下:
Person [name=Alice, age=25]
Person [name=Bob, age=30]
代码第 ① 处声明了一个名为 Person 的类。这个类用于表示人员的信息。
代码第 ② 处重写 Person 类的 toString() 方法。toString() 方法是 Java 中的一个内置方法,它用于将对象转换成字符串表示。在重写时使用的是字符串拼接的方式,将人员的姓名和年龄格式化成一个字符串,并将其返回。
代码第 ③ 处是 Main 类的入口方法 main(),它是程序的起点。在这个方法中,创建了两个 Person 对象 person1 和 person2,分别用于表示 Alice 和 Bob 这两个人员。
代码第 ④ 处中使用 System.out.println() 方法打印输出 person1 对象。由于 System.out.println() 方法会自动调用对象的 toString() 方法来获取字符串表示,因此在输出 person1 时实际上会调用 person1.toString() 方法,并将其返回的字符串打印出来。
代码第 ⑤ 处中使用 System.out.println() 方法打印输出 person2 对象。同样,由于 System.out.println() 方法会自动调用对象的 toString() 方法来获取字符串表示,因此在输出 person2 时,实际上会调用 person2.toString() 方法,并将其返回的字符串打印出来。