Discuss / Java / 关于 tostring

关于 tostring

Topic source

public class Main {

    public static void main(String[] args) {

        Weekday day = Weekday.SUN;

        if (day.dayValue == 6 || day.dayValue == 0) {

            System.out.println("Today is " + day + ". Work at home!");

        } else {

            System.out.println("Today is " + day + ". Work at office!");

        }

    }

}

enum Weekday {

    MON(1, "星期一"), TUE(2, "星期二"), WED(3, "星期三"), THU(4, "星期四"), FRI(5, "星期五"), SAT(6, "星期六"), SUN(0, "星期日");

    public final int dayValue;

    private final String chinese;

    private Weekday(int dayValue, String chinese) {

        this.dayValue = dayValue;

        this.chinese = chinese;

    }

    @Override

    public String toString() {

        return this.chinese;

    }

}

为什么 day 的 打印  输出 值 是  星期天  没看见 在哪里 调用了 tostring 方法啊 。。。

看评价 :

system.out.println本质上调用的是class 的 toString()方法,在class 重写了 toString()方法,所以导致返回的是chinese,也就是第二个参数。

day不就是相当于一个class的实例吗


  • 1

Reply