[英]use toString() in overload construct ? how
public class Date {
...
public Date(first case)
...
public Date(second case)
...
public Date(third case)
...
public String toString(){
...}
如何在toSTring()中编写代码?
谁能向我解释
toString
返回的内容并不取决于您的类中有多少个constructor
。 它们用于在打印类的实例时return
要打印的String
表示形式。 您可以返回任何字段或其中的某些字段的串联。
因此,如果您的Person
类具有包含id
和name
大约4-5 fields
,并且您想打印用冒号分隔的个人的id
和name
,那么当您打印实例时,您的toString()
如下所示:-
@Override
public String toString() {
return this.id + " : " + this.name;
}
因此,如果您有一个Person
类的实例,其id = 5
, name = rohit
, age = 23
和一些email id
,则在显示该实例时:-
Person person = new Person(5, "rohit", "rohit@gmail.com", 23);
System.out.println(person);
Person person2 = new Person(6); // Don't have `name` set
System.out.println(person2);
上面的语句将打印:-
5 : rohit
6 :
作为输出。
但是,您当然可以在toString
添加一个条件来检查字段是否为空,并且可以相应地返回一条消息。
public String toString() {
return case1 != null ? case1 : case2 != null ? case2 : case3 != null ? case3 : null;
}
java toString对于以文本形式表示对象非常有用。 您应该始终覆盖toString(),以便可以访问适当的调试/日志记录。 这是一个可能是一个很好示例的类的示例。
public class Person {
private final String _name;
private final Integer _age;
private final Date _birthday;
public Person(String name, Integer age, Date birthday) {
this._name = name;
this._age = age;
this._birthday = new Date(birthday.getTime());
}
@Override
public String toString() {
return "Person [_name=" + _name + ", _age=" + _age + ", _birthday="
+ _birthday + "]";
}
}
toString方法应表示对象的“状态”,因此与构造函数无关,而与类属性有关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.