Java 为什么";这";关键字print toString()到底在打印什么?
为什么Java 为什么";这";关键字print toString()到底在打印什么?,java,this,tostring,Java,This,Tostring,为什么this关键字会准确打印toString方法正在打印的内容 public class A { public static void main(String[] args) { Stuff s = new Stuff("in",5 ); System.out.println(s); double doubleValue = 2.5 ; s.doSomething(doubleValue); System.out.print
this
关键字会准确打印toString
方法正在打印的内容
public class A {
public static void main(String[] args) {
Stuff s = new Stuff("in",5 );
System.out.println(s);
double doubleValue = 2.5 ;
s.doSomething(doubleValue);
System.out.println(doubleValue);
s = new Stuff("more", 3);
String str = "word";
System.out.println(s.changeSomething(str));
System.out.println(s);
System.out.println(str);
}
}
class Stuff {
private static final int n =2 ;
private String string;
private int num;
public Stuff(String s, int num) {
this.num = num;
string = s;
}
public void doSomething(double d) {
d = d * num;
System.out.println(this);
}
public double changeSomething(String s) {
s = string;
return n * num;
}
public String toString() {
return string + " has " + num;
}
}
这是我得到的输出
in has 5
in has 5
2.5
6.0
more has 3
word
System.out.println
方法不知道如何输出自定义类型的实例,因此它可以做的下一件最好的事情是调用toString
方法,该方法可用于Java中的所有对象并返回字符串表示。在本例中,您已经重写了它,因此它实际上执行您的toString
方法并打印结果。您可以阅读System.out.println()的文档。
。是一个打印流
。calls,它调用,如果引用为null,则返回字符串“null”
;否则返回obj.toString()
正如Martin所说,基本上println(this)
只调用toString()
方法并打印它。更多信息:哦,我不知道有这样一层间接寻址:-)。