• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

java toString方法

       每一个非基本类型的对象都有一个toString()方法,而且当编译嚣需要一个String,而程序中只有一个对象时,该方法便会被调用。
       下面看一个例子吧!这是Java编程思想里的一个例子。

class WaterSource
{
    private String s;
    WaterSource(){
        System.out.println("WaterSource()");
        s = new String("Constructed");
    }
    public String toString(){return s;}
};

public class SprinklerSystem
{
    private static Test monitor = new Test();
    private String valve1,valve2,valve3,valve4;
    private WaterSource source;
    private int i;
    private float f;
    public String toString(){
        return
            "valve1 = " + valve1 +"\n" +
            "valve2 = " + valve2 +"\n" +
            "valve3 = " + valve3 +"\n" +
            "valve4 = " + valve4 +"\n" +
            "i = " + i + "\n" +
            "f =" + f + "\n"+
            "source =" + source;
     }

    public static void main(String[] args){
        SprinklerSystem sprinklers = new SprinklerSystem();
        System.out.println(sprinklers);
    }
};


输出的结果为:
valve1 = null
valve2 = null
valve3 = null
valve4 = null
i = 0
f = 0.0
source = null


       WaterSource 内定义了一个非常特殊的方法toString() 大家不久就会知道每种非基
类型的对象都有一个toString()方法若编译器本来希望得到的是一个String 但却获得了这
样的一个对象便会调用这个方法所以在下面这个表达式中
System.out.println("source = " + source);
编译器会发现我们试图向一个WaterSource 添加一个String 对象"source =" 这对它
来说是不可接受的。因为我们只能将一个字串添加到另一个字串,所以它会说我要
调用toString() 把source 转换成字串,经这样处理后它就能编译两个字串并将结果字
串传递给一个System.out.println() 。每次想让自己的一个类允许这样的行为都只需写一个
toString()方法
。
posted @ 2008-10-20 11:08  小不点儿大的由我做主!  阅读(189)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3