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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值