目录
0. 序言
Java中的Object的toString()方法和Arrays的toString()方法都是用来将对象转换为字符串的,但是它们的用途和行为有所不同。
1. Object的toString()方法:
Object类是Java中所有类的父类。toString()方法是Object类的一个公共方法,它返回一个代表对象的字符串。默认情况下,Object的toString()方法返回的是对象的类名,后面跟着一个“@”符号,然后是对象的哈希码的无符号十六进制表示。例如,如果你有一个名为MyObject的类,并且你创建了这个类的一个实例,那么调用这个实例的toString()方法将返回类似于MyObject@4554617c的字符串。
但是,通常我们会在自己的类中重写toString()方法,以返回更有意义的字符串表示。例如,如果你有一个Person类,你可能会重写toString()方法,使其返回人的名字和年龄。
代码:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Person person = new Person("Alice", 25);
System.out.println(person.toString()); // 输出:Person{name='Alice', age=25}
2. Arrays的toString()方法:
Arrays类是Java中用于操作数组(例如排序和搜索)的工具类。Arrays.toString()方法是一个静态方法,它接收一个数组作为参数,并返回一个字符串,该字符串是数组元素的字符串表示形式,元素之间用逗号和空格分隔,整个字符串由方括号括起来。例如:
int[] numbers = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
这个方法对于打印数组非常有用,因为如果你直接调用数组的toString()方法(这实际上是调用Object的toString()方法),你将得到的是数组的内存地址,而不是数组的内容。
3. 总之
Object的toString()方法和Arrays的toString()方法都是用来获取对象的字符串表示的,但是Object的toString()方法通常需要在子类中重写,以提供有意义的输出,而Arrays的toString()方法则是用来获取数组内容的字符串表示的。