Object中的toString

大家可以看一下这一段代码

public class Demo1 {
    static int i=1;

    public static void main(String[] args) {
        System.out.println("love"+new Demo1());
        Demo1 a=new Demo1();
        a.i++;
        System.out.println("me"+a.i);
    }
    public String toString(){
        System.out.print("I ");
        return "java";
    }
}

输出结果
在这里插入图片描述
看完大家是不是会有一个疑问为什么输出的是 I love java
首先我们看一下在System.out.println中在love的后面new了一个新的Demo1,在这里我要告诉大家在System.out.println中new一个新的对象会先执行这个对象中的toString的方法,如果这个方法被重写了那会执行被重写的方法,但不会急与返回参数会在前面的打印完以后再返回。所以先执行toString中的方法打印出I再打印出love当love打印出来以后将toString中的java返回给System.out.println并将它打印出来。
让后在new一个Demo1调用i,因为i是静态变量所以加载是时最先被加载,让后经过自加返回的是2。

猜你喜欢

转载自blog.csdn.net/MCYZSF/article/details/89877977
今日推荐