toString 方法
Java 对象都是 Object 类的实例,都可以直接调用 Object 类中定义的方法,这些方法提供了处理Java对象的通用方法,而 toString 是 Object 类中的一种常用的方法。
**toString 方法是一个 “自我描述” 方法,该方法一般用于打印某些对象的的信息,用以告诉外界该对象具有的状态信息。而 Object 类提供的 toString 方法总是返回该对象的类名+@+hashCode值**
下面一个小例子看一下 toString 方法是如何使用的
class Test{
private String name;
public Test(String name){
this.name = name;
}
public static void main(String[] args) {
Test t = new Test("小明");
System.out.println(t);
System.out.println(t.toString());
}
}
/*res:
test@74a14482
test@74a14482
那么现在问题来了,为什么直接输出 `t` 和 `t.toString()`的结果是一样的呢?
**因为,**`**System.out.println**`**方法只能在控制台输出字符串,当该方法输出 Test 对象时,实际上输出的是 Test 对象的 toString()方法的返回值。**
这个返回值并不能实现真正意义上的 “自我描述” 的功能,如果需要自定义类能实现 ”自我描述“ ,则需要重写 toString 方法。
下面的代码来按照需求重写 toSting() 方法。
class test{
private String name;
private int age;
public test(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return "这个人的名字是:"+name+",年龄是:"+age;
}
public static void main(String[] args) {
test t = new test("小明",18);
System.out.println(t);
System.out.println(t.toString());
}
}
/*res:
这个人的名字是:小明,年龄是:18
这个人的名字是:小明,年龄是:18
想上述代码一样,我们只需要按照我们的想法去重写 toString() 方法,那么在调用 “自我描述” 的方法时,便可以得到我们想要的结果。