java-toString的调用

package com.car.bbs.util;

/**
 * Created by wangjianxin on 2017/2/28.
 */
public class test7 {
    static class WaterSource{
        private String s;
        WaterSource(){
            System.out.println("WaterSource()");
            s = "Consrtucted";
        }
        public String toString(){
            return s;
        }

    }
    public static class SpinklerSystem{
        private String valve1,valve2,valve3,valve4;
        private WaterSource source = new WaterSource();
        private int i;
        private float f;
        public String toString(){
            return "valve1="+valve1+"valve2="+valve2+"valve3="+valve3+"valve4="+valve4+
                    "i="+i+"f="+f+"source="+source;
        }
    }
    public static void main(String args[]){
        SpinklerSystem spinklerSystem = new SpinklerSystem();
        System.out.println(spinklerSystem);
    }
}

输出结果:WaterSource()
valve1=nullvalve2=nullvalve3=nullvalve4=nulli=0f=0.0source=Consrtucted

在上述中有两个类都有toString方法,当编译器需要一个String而你却只有一个对象时,该方法就会被调用

在SpinklerSystem.toString方法中有"source= "+source编译器知道你想要一个String对象,要把source转化为String。

说白了将String和对象相加(“String”+对象)需要将对象转化为String,然后调用对象的toString方法。

但是有人就会想了,如果没有toString方法呢,结果看一下

WaterSource()
valve1=nullvalve2=nullvalve3=nullvalve4=nulli=0f=0.0source=com.car.bbs.util.test7$WaterSource@2f8c5b4f

一目了然。

当我们创建的类需要这样的行为时候,就可以编写一个toString方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值