Java toString()方法的神奇之处
Java 手册
toString(String类中)
public String toString()
- 返回此对象本身(它已经是一个字符串!)。
-
- 指定者:
- 接口
CharSequence中的toString - 覆盖:
- 类
Object中的toString
-
- 返回:
- 字符串本身。
toString(Object类中)
public String toString()
- 返回该对象的字符串表示。通常,
toString方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。Object类的toString方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
- 返回:
- 该对象的字符串表示形式。
toString() 这个方法有点特别,如果把这个方法放在类里面,在创建这个对象之后,输出这个对象的时候会自动调用这个方法。
实例:
Person类,里面重写了toString()方法。
public class Person {
private int age;
private String name;
public Person() {
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
测试类:
public class test{
public static void main(String[] args) {
Person p = new Person();//实例化一个对象
System.out.println(p);
}
}
运行结果:
Person [age=0, name=null]
我们可以看到,在测试类里面我们并没有调用 p 对象里面的 toString() 这个成员方法,但是,它确实是执行了。
如果我们没有在类里面写这个方法,那么它输出的将是对象 p 的地址,例如:Day10.Person@15db9742
那么问题来了,这样做的意义在哪?
1、以我目前的理解就是帮助程序员方便的测试类中的成员变量的状态。
2、toString()方法就是把对象转换成String类型,转换的算法根据类型和实际需要而定。
比如一个Integer对象的toString方法就是把这个对象表示的整数转化成字符串,133就成了"133"。
Java toString()方法的神奇之处的更多相关文章
- JAVA toString方法
在JAVA中,所有的对象都有toString方法: 创建类时没有定义toString方法,输出对象时,会输出对象的哈希值: 它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个 ...
- Java toString()方法
JDK API java.lang 的Object类中的toString()方法 toString public String toString() 返回该对象的字符串表示.通常,toString 方 ...
- Java toString()方法的自动调用
如果某一个对象出现在字符串表达式中(涉及“+”字符串对象的表达式),toString()方法就会被自动调动.
- Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式
API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...
- 由Java中toString()方法引发的无意识的递归想到的
先看一段很简单的java代码: toString()/** * @author jeffwong */ public class InfiniteRecursion { public String t ...
- JAVA中toString方法的作用
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不 ...
- Java基础(5):试用Array类对数据进行操作(Sort和toString方法)
Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等 1. 排序 语法: Arrays.sort(数 ...
- 原!! java直接打印一个对象时,并不是直接调用该类的toString方法 ,而是会先判断是否为null,非null才会调用toString方法
网上看了好多java直接打印一个对象时,直接调用该类的toString方法 . 但是: Object obj=null; System.out.println(obj);//没有报错 System.o ...
- Java中的toString()方法
Java中的toString()方法 目录 Java中的toString()方法 1. 对象的toString方法 2. 基本类型的toString方法 3. 数组的toString ...
随机推荐
- adb connect 192.168.1.10 failed to connect to 192.168.1.10:5555
adb connect 192.168.1.10 输出 failed to connect to 关闭安卓端Wi-Fi,重新打开连接即可
- Java 集合-Collections工具类
2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...
- ListBox的虚拟可视化技术
在ListBox中承载大量的数据项时,可采用虚拟可视化技术来提高控件显示数据的性能.如下代码: <ListBox.ItemsPanel> <It ...
- 使用actioncable做的notification(GoRails教学,2课)
GoRails视频系列: 1. 用actioncable建立Notifications 2. 见博客: 3. 非认证/登陆user不能使用actioncable 用ActionCable 建立 ...
- mysql 常见数据类型
---恢复内容开始--- MySQL常见的数据类型 一.数据类型是什么? 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 有一些数据是要存储为 ...
- Coderforce 560B-Gerald is into Art
题目大意:给了三个矩形的长和宽,问第一个能否把其他两个装在内部,要求内部之间不重叠,不出界(可重边)? 题目分析:这道题...考虑不够全面导致比赛时没有出来...当时,就是觉得自己的代码很完美,不可能 ...
- 快速切题 poj 2993 Emag eht htiw Em Pleh 模拟 难度:0
Emag eht htiw Em Pleh Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2806 Accepted: ...
- Android 五种存储方式个人总结
一 . 文件存储 FileOutputStream out = openFileOutput("data",Context.MODE_PRIVATE); BufferedWrite ...
- Toncat-OpenSSL双向认证配置(iOS)
OpenSSL生成证书 要生成证书的目录下建立几个文件和文件夹,有./demoCA/ ./demoCA/newcerts/ ./demoCA/private/ ./demoCA/index.txt ( ...
- python3 读入一个jpg格式的图片,并转换长宽像素个数,然后进行绘制
import matplotlib.pyplot as plt from scipy import ndimage import numpy as np import scipy fname=&quo ...