java中toString的疑问

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:33:59
class Cleaner {
private String s = new String("Cleanser");
public void append(String a) { s += a; }
public void dilute() { append(" dilute()"); }
public void apply() { append(" apply()"); }
public void scrub() { append(" scrub()"); }
public String toString() { return s; }
难道S原来不是String类型的吗 为什么还要toString
public static void main(String[] args) {
Cleanser x = new Cleanser();
x.dilute(); x.apply(); x.scrub();
System.out.println(x);
}
}剩下的代码

这个toString()是你自己重写的覆盖这个类的toString()方法,使他能获得你想要得输出。
任何对象都有toString()方法,如果你不重写这个方法,输出的将会是这个类的内存地址,不信你删掉那个函数试试

这里的toString 是覆盖的String的toString方法,这里toString 返回的是S

toString是你自己定义的一个方法.

如果没有toString() 这个方法
System.out.println(x); 输出的只是"x"的地址
而不是你想要的string类型的字符串 "dilute() apply() scrub()"

所以这里toString()是为了输出string类型而做的方法

以后会经常见到的

3楼4楼回答够详细的了!以后开发会经常遇见的!