前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA的toString方法的一个小例子

JAVA的toString方法的一个小例子

作者头像
阮键
发布2019-08-07 14:46:52
5020
发布2019-08-07 14:46:52
举报
文章被收录于专栏:JAVA人生/面试技巧

Object是一个抽象类,他有很有方法,其中的toString方法是我们常见的一个方法,我们可以看这段代码

代码语言:javascript
复制
package com.com.day1;

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

其执行结果为:

那么为什么会出现上面的运行结果?

首先我们可以在JAVA API文档中查找Object类里面的toString方法;

看不懂了?没关系,我们来实现一下:

代码语言:javascript
复制
package com.com.day1;

public class ToStringTest {
    static int i=1;
    public static void main(String args[]){
        System.out.println(new ToStringTest());
    }
}

总结:当我们直接调用对象的时候会输出 类名@对象的哈希码

再来一个测试

代码语言:javascript
复制
package com.com.day1;

public class ToStringTest {
    static int i=1;
    public static void main(String args[]){
        System.out.println(new ToStringTest());
    }
    public String toString(){
        return "java";
    }
}

总结:当我们重写toString方法时会return返回对应的字符串

再来一个测试

代码语言:javascript
复制
package com.com.day1;

public class ToStringTest {
    static int i=1;
    public static void main(String args[]){
        System.out.println("love "+new ToStringTest());
    }
    public String toString(){
        return "java";
    }
}

总结:toString方法可以通过+和其他类型连接起来而且是转为字符串类型连接

这样我们就有头绪了,再看这个测试

代码语言:javascript
复制
package com.com.day1;

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

总结:在输出之前会调用toString方法,解析这个方法时会先输出 I 之后再输出 love java

代码语言:javascript
复制
package com.com.day1;

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

有个疑问?为何这个地方ToStringTest a=new ToStringTest()没有调用这个方法?

总结:在用System.out.println();z输出该类的时候(有点想c++cout的重载),会调用toString函数。将该类与String类拼接时也会调用该类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档