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 ...
随机推荐
- 支线任务2-Basic Calculator
问题描述: 题目要求我们实现一个简单的加减计算器,计算一个表达式的值,表达式除了数字之外还可能会含有括号,加减符号以及空格. 思路: 其实看到这个题自然就会想到利用后缀式求表达式值的算法作业题,况且这 ...
- 51nod 1040 最大公约数的和 欧拉函数
1040 最大公约数之和 题目来源: rihkddd 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 给出一个n,求1-n这n个数,同n的最大公约数 ...
- bootstrap.min.css.map HTTP/1.1" 404 1699
在做一个jsp练习的时候遇到引入bootstrap.css的时候出现了URL:bootstrap.min.css.map 404的错误. 解决办法:删除bootstrap.min.css文件内容最后一 ...
- jquery chosen 插件 动态设置+更新选项值
我要在表单里使用一个select下拉菜单(是不是multiple无所谓),所以选择了jquery chosen这个插件.现在有一个需求,需要根据表单的另一个域来动态加载该select元素的选项. 1 ...
- centOS安装ab测试工具
yum install apr-util cd /opt mkdir abtmp cd abtmp yum install yum-utils.noarch yumdownloader httpd-t ...
- bzoj-5049-线段树
5039: [Jsoi2014]序列维护 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 323 Solved: 193[Submit][Status ...
- createjs记录坑
1.使用preloadjs加载资源: manifest = [ {src: "block.png", id: "ground"}, {src: "re ...
- 【解决方案】django初始化执行python manage.py migrate命令后,除default数据库之外的其他数据库中的表没有创建出来
[问题原因]:django工程中存在多个应用,每个应用都指定了对应的数据库.执行python manage.py migrate命令时没有指定数据库,将只初始化默认的default数据库. [解决方案 ...
- Chrome即将封杀Google Earth、Google Talk等插件
昨日,Chrome安全工程师Justin Schuh在官方博客中写道,到明年一月份,谷歌将封杀一系列基于NPAPI框架标准的浏览器插件.其中包括谷歌地球(Google Earth).Google Ta ...
- JBOSS context root 项目名字默认不写
进到 %JBOSS_HOME%/configuration/standalone.xml,修改下面节点 <virtual-server name="localhost" en ...