Point a; system.out.println(a). 为什么能自动调用toString()方法。 为什么不是其它方法呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为 println(Object obj)方法里面最终(经过一系列的方法调用String.valueOf(Object obj))会调用 obj.toString();如果你能改写这个方法,你可以让它调用你需要的方法。 因为从object类继承下来的。所有的类都是object类的子类 这儿主要是System.out.println()方法决定了它的行为, println(Object ob); 最终获取toString()方法来输出信息内容 因为Object是所有类的父类 Java语言里就这样规定了 没办法 其实现大概是这样:System.out.println(Object ob){ System.out.println(ob.toString());}你可以重写obj的toString()方法,你打印时就会调用重写后的toString() 对的,因为每个类均是Object的子类,在调用System.out.println(Object ob)时,参数obj会在后台自动调用toString()方法 实际上任何类的父类都是object,那么也就是说任何类都继承了它的toString()方法,当你用System.out.println(obj);的时候,打印方法就会去找obj对象所在的类有没有重写父类的toString()方法,如果有,那么按照自己重写的打印该对象,如果没有,那么调用父类的toString()方法,也就是打印该对像在内存中的地址比如:class Point { private String name; public String toString(){ return this.name; }}现在执行System.out.println(a)就会打印name的值,也就是null public void println(Object x) { String s = String.valueOf(x); synchronized (this) { print(s); newLine(); } }你看看JDK的源代码,看到了吗? String.valueOf(); public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); }好了,搞定! 如何提高程序效率?越来越慢 很简单的程序,如果写测试案例,你会怎样写 final关键字到底修饰了什么? 求素数,并在文本框中输出结果 想用多态机制画图可是遇到难题了~~ 如何将键入JTextField里的URL地址的内容在JTextArea里显示 UML中的关联,泛化,依赖和实现是什么意思呀? 请问java如何调用oracle 中的存储过程?并获取存储过程的输出结果? 在线等待,急……用java打印,纸张右半边为何打印不出来 java问题???怎么解决 this用法的小问题? 想用Java做一个小软件,将web页面嵌入软件面板中
如果你能改写这个方法,你可以让它调用你需要的方法。
所有的类都是object类的子类
System.out.println(Object ob)
{
System.out.println(ob.toString());
}
你可以重写obj的toString()方法,你打印时就会调用重写后的toString()
当你用System.out.println(obj);的时候,打印方法就会去找obj对象所在的类有没有
重写父类的toString()方法,如果有,那么按照自己重写的打印该对象,如果没有,那
么调用父类的toString()方法,也就是打印该对像在内存中的地址
比如:
class Point {
private String name;
public String toString(){
return this.name;
}
}
现在执行System.out.println(a)就会打印name的值,也就是null
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}你看看JDK的源代码,看到了吗? String.valueOf();
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}好了,搞定!