java里我们经常System.out.println(xx)
xx可以是一个List 一个HashMap 一个HashSet 一个什么奇怪的自定义的类。
只要能正确显示字符串的背后起作用的都是一个叫toString 的方法。
看个例子
package com.javaer.examples;
import java.util.ArrayList;
class Girl{
String name = "";
int age = 0;
}
public class JToString {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList L = new ArrayList();
L.add("张三疯");
L.add("月小升");
System.out.println(L);
System.out.println(L.toString());
Girl g = new Girl();
g.name = "susan";
g.age = 20;
System.out.println(g);
}
}
[张三疯, 月小升]
[张三疯, 月小升]
com.javaer.examples.Girl@35960f05
我们发现ArrayList 直接输出,可以展示正常字符串。而Girl 就不太行了。显示com.javaer.examples.Girl@35960f05
因为Girl里面没有toString 方法。 ArrayList里有。
那么我们给Girl 加个方法
public String toString(){
return "ok,name:" + name + ",age:" + age;
}
当然return 出来的字符串自己随便定义。传说java设计这个toString方法就是为了方便大家写类的时候,方便调试。
输出结果如下
[张三疯, 月小升]
[张三疯, 月小升]
ok,name:susan,age:20
其实我也可以将toString方法写成这样
return name +","+ age;
You must be logged in to post a comment.
博主你好,我在博客里加了一个“独立博客大全”的版块,有时间过来看看,如果没有添加你的,通知我一声,无条件收录!
object类的几个方法都比较重要,经常会用到的~覆写也是经常做的事情~
看样子是java高手哦
高手算不上。相对熟练。近来用的多点。
Girl类有继承Object类中的toString方法
哦。加一个算覆写?
apache的commom包下有个类可以拿来用,自己用反射写也可