java-toString的调用

来源:互联网 发布:php生成短网址 编辑:程序博客网 时间:2024/05/17 22:35

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方法即可。

1 0