在重载构造中使用toString()?怎么样

时间:2012-10-20 04:16:40

标签: java overloading tostring

我在类

中有几个构造函数
public class Date {
       ...
       public Date(first case)
       ...
       public Date(second case)
       ...
       public Date(third case)
       ...
       public String toString(){
       ...}

如何在toSTring()????

中编写代码

任何人都可以向我解释

4 个答案:

答案 0 :(得分:3)

toString返回的内容并不取决于您班级中constructor的数量return。当您打印班级实例时,它们用于String Person表示您想要打印的表示。您可以从中返回任何字段或某些字段的串联。

因此,如果您的4-5 fields课程包含id nameid,并且您想要打印nametoString()用冒号分隔的人,当你打印实例时,你的@Override public String toString() { return this.id + " : " + this.name; } 会是这样的: -

Person

因此,如果您的id = 5类的实例包含name = 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

作为输出。

但是你当然可以在你的{{1}}中设置一个条件来检查一个字段是否为空,你可以相应地返回一条消息。

答案 1 :(得分:0)

public String toString() {
    return case1 != null ? case1 : case2 != null ? case2 : case3 != null ? case3 : null;
}

答案 2 :(得分: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 + "]";
    }

}

答案 3 :(得分:0)

toString方法应该代表"状态"您的对象,因此与构造函数无关,但与您的类属性有关。