0

我班上有几个构造函数

public class Date {
       ...
       public Date(first case)
       ...
       public Date(second case)
       ...
       public Date(third case)
       ...
       public String toString(){
       ...}

如何在 toSTring() 中编写代码????

谁能给我解释一下

4

4 回答 4

3

你的回报不是由你班上有toString多少人决定的。constructor它们用于在打印类的实例时要打印的表示returnString您可以从中返回任何字段或某些字段的串联。

因此,如果您有一个包含and的Person类,并且您想打印用冒号分隔的人的and ,当您打印实例时,您将看起来像:-4-5 fieldsidnameidnametoString()

@Override
public String toString() {
    return this.id + " : " + this.name;
}

因此,如果您有一个带有 , 和 some 的类实例,那么Person当您显示该实例时:-id = 5name = rohitage = 23email 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来检查一个字段是否为空,并且你可以相应地返回一个消息。

于 2012-10-20T04:36:27.690 回答
0
public String toString() {
    return case1 != null ? case1 : case2 != null ? case2 : case3 != null ? case3 : null;
}
于 2012-10-20T04:36:12.237 回答
0

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 + "]";
    }

}
于 2012-10-20T04:47:10.697 回答
0

toString 方法应该代表对象的“状态”,因此与构造函数无关,而是与类属性相关。

于 2012-10-20T04:58:18.327 回答