重写java中的toString()方法
a.java中的toString()方法用于描述对象本身.每个一个对象,系统都默认自带toString方法,如果想要将对象输出为自己想要的更加规范的格式,则需要重写方法.
b.对于一些比较简单的输出格式,往往可以直接使用string.format()完成格式输出.如:
@Override
public String toString() {
return String.format("学生的名字叫做:%s,今年%d岁了", name,age);
}
输出示例为: 学生的名字叫做:xixi,今年25岁了.
c. 对于一些较为复杂的输出格式,往往需要用到StringBuilder类.StringBuilder的对象是一串可变的字符;从文档了解到:(The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to accept data of any type.)其主要的用法是append和insert,这两种方法可以接收任何类型的数据.(Each effectively converts a given datum to a string and then appends or inserts the characters of that string to the string builder. The append method always adds these characters at the end of the builder; the insert method adds the characters at a specified point. )每一种方法都能将给定的数据转换成字符然后添加append在builder字符串的最后或者insert进指定的位置.其中最后一行代码res.toString()的toString()方法的作用在于返回一个代表目标对象的字符串.
实现代码例如:
@Override
public String toString() {
StringBuilder res = new StringBuilder();
res.append(String.format("Array:size =%d,capacity = %d\n",size,data.length));
res.append('[');
for(int i = 0;i<size;i++) {
res.append(data[i]);
if(i != size - 1) {
res.append(",");
}
}
res.append(']');
return res.toString();
}
其对象输出为:Stack:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],看似与format功能相同,但是实则通过append等方法,StringBuilder比String.format() 更加灵活,适用面更广泛.