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

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方法;

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

package com.com.day1;

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

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

再来一个测试

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返回对应的字符串

再来一个测试

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方法可以通过+和其他类型连接起来而且是转为字符串类型连接

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

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

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类拼接时也会调用该类。

JAVA的toString方法的一个小例子的更多相关文章

  1. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  2. java连接mysql的一个小例子

    想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...

  3. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

  4. 自己(转)JAVA中toString方法的作用

    JAVA中toString方法的作用 因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.print ...

  5. Java多线程分批发送消息的小例子

    需求: 假设有10万个用户,现在节假日做活动,需要给每个用户发送一条活动短信,为了提高程序的效率,建议使用多线程分批发送. 这里值得注意的是: 每开一个线程都会占用CPU的资源,所以线程根据所需要的条 ...

  6. (转)Java中使用正则表达式的一个简单例子及常用正则分享

    转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...

  7. 使用Trinity拼接以及分析差异表达一个小例子

    使用Trinity拼接以及分析差异表达一个小例子  2017-06-12 09:42:47     293     0     0 Trinity 将测序数据分为许多独立的de Brujin grap ...

  8. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

  9. JAVA中toString方法的作用

    因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不 ...

随机推荐

  1. 泛型T

    作用: 使用泛型类型可以最大限度地重用代码.保护类型的安全以及提高性能. 泛型最常见的用途是创建集合类 1.性能:如List<object> 与 List<T> 将一个 int ...

  2. Html学习之四(页面布局)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. django DeleteView

    DeleteView from django.urls import reverse, reverse_lazy from django.contrib.auth.mixins import Logi ...

  4. C++ class内的 ++ 重载,左++,右++,重载示例。

    #include <iostream> // overloading "operator ++ " inside class // ++ 是一元操作符 //////// ...

  5. [日常] NOI2019 退役记

    这次要彻底退役了 开个坑先 Day -2 出发坐车去gz 好像和上次去雅礼的车是同一趟于是大家都以为和上次一样是 \(10:40\) 开车, 于是提前2h大概八点多就去坐公交了 到了之后取票, 发现票 ...

  6. MySQL实战45讲学习笔记:第四十四讲

    一.引子 这是我们专栏的最后一篇答疑文章,今天我们来说说一些好问题. 在我看来,能够帮我们扩展一个逻辑的边界的问题,就是好问题.因为通过解决这样的问题,能够加深我们对这个逻辑的理解,或者帮我们关联到另 ...

  7. ES6中有关数组的一些新操作

    1.Array.isArray() 用于确定传递的值是否是一个 Array. Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); ...

  8. JeeSite | 访问控制权限

    在各种后台系统中都会涉及到权限的管控,从功能权限的管控,到数据权限的管控,都是为了让系统的在使用的过程中更加的安全.功能权限管控是对针对不同的角色可以进行不同的功能操作,而数据权限管控是针对不同的角色 ...

  9. Module Code: CMT107

    Cardiff School of Computer Science and InformaticsCoursework Assessment Pro-formaModule Code: CMT107 ...

  10. 使用OpenCL提升OpenCV图像处理性能 | speed up opencv image processing with OpenCL

    本文首发于个人博客https://kezunlin.me/post/59afd8b3/,欢迎阅读最新内容! speed up opencv image processing with OpenCL G ...