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. 01-day-什么是webpack

    .sass后缀的文件名 比较老了 现在它的后缀名是.scss 其实他们是同一个东西 只是 后缀名发生了变化 以 .sass写的文件的内容是 他没有括号 没有分号 有点怪 它跟新为了.scss 就有了花 ...

  2. pycharm 快速启动Django项目和python程序

    Django 设置 *.py

  3. 环形链表 II

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  4. tf.summary.scalar()和tf.summary.histogram

    用法: 1.tf.summary.scalar 用来显示标量信息,其格式为: tf.summary.scalar(tags, values, collections=None, name=None) ...

  5. ES6 Set求两个数组的并集、交集、差集;以及对数组去重

    并集: const arr1 = [1, 2, 3, 2, 5]; const arr2 = [1, 4, 6, 8, 3]; // 将两个数组合并 const concatArr = [...arr ...

  6. Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承

    s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...

  7. 第01组 Beta版本演示

    目录 1.1 本组成员 1.2 工作流程.组员分工.组员工作量比例 1.3 GitHub 项目链接 1.4 本组 Beta 冲刺站立会议博客链接汇总 1.5 燃尽图 1.6 原计划.达成情况及原因分析 ...

  8. centos配置ADSL拨号 配置阿里云的yum源

    如果系统yum源有问题可以更改yum源配置阿里云的yum源1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo(没有 wget命令可 ...

  9. Unity Shader 屏幕后效果——摄像机运动模糊(速度映射图实现)

    速度映射图主要是为了得到每个像素相对于前一帧的运动矢量,其中一种方法是使用摄像机的深度纹理来推导. 推导过程如下: 先由深度纹理逆推出NDC(归一化的设备坐标)下的顶点坐标,利用VP矩阵(视角*投影矩 ...

  10. java截取字符串中的最后几个字符

    Java中的String类提供了一个substring(int from, int to)方法用于截取字符串中位置为from到to-1位置的字符. 因为字符串的字符位置是从0开始的,而substrin ...