`
liuwei1981
  • 浏览: 752619 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156173
社区版块
存档分类
最新评论

67.对象的toString()方法

 
阅读更多

在Object类中,定义了一个toString()方法,用来返回一个表示这个对象的字符串:
public String toString() {
 return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }


在这个方法中,它将返回一个由类名、紧随其后的“@”符号和hash码的无符号的十六进制字符串,用来表示这个对象。

 

在前面提到了,Object类是所有Java类的超级父类,根据类的继承原则,也就意味着,在Java中,任何一个Java类都拥有了这个toString()方法了。


我们来看一下调用“Person”对象的toString()方法返回的值。(使用示例6-2中定义的Person类)
… …
Person person = new Person();
System.out.println(person);
… …
上述代码将打印出表示这个“Person”对象的字符串。它将打印出类似如下的信息:
Person@15ff48b


显然,这个信息对于我们来说没有什么用。

 

因此,通常情况下,我们需要覆盖父类中的方法toString(),用来提供某对象的自定义信息。一般来说,大多数类的toString()方法覆盖后返回的用于表示对象的字符串都遵循如下的格式:
类名[属性1=值1,属性2=值2,…]


覆盖toString()方法的一个基本原则是,它应该返回包含在对象中的所有令人感兴趣的信息,比如,对象的属性的值。


我们来看一个覆盖toString()的例子。

Person,覆盖Object中的toString()方法
public class Person {
 private String name;

 private int age;

 private String sex;

 public String showName() {
  return name;
 }

 public void setName(String theName) {
  name = theName;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int theAge) {
  age = theAge;
 }

 public String getSex() {
  return sex;
 }

 public void setSex(String theSex) {
  sex = theSex;
 }

 // 覆盖toString()方法
 public String toString() {
  return getClass() + "[" + "name = " + name + ",age = " + age
    + ",sex = " + sex + "]";
 }
}


在这个类中,覆盖了父类(在这里是Object类)的toString()方法,让它按照上面所说的惯例来返回一个用以表示对象的字符串。


除显式调用对象的toString()方法外,在进行String与其它类型数据的连接操作时,会自动调用toString()方法,它可以分为两种情况:


1. 如果String类型数据和引用数据类型连接,则引用类型数据直接调用其toString()方法返回表示该对象的字符串;
2. 如果String类型数据和简单类型数据连接,则简单类型数据先转换为对应的封装类型,再调用该封装类对象的toString()方法转换为String类型。

 

 

分享到:
评论

相关推荐

    JavaScript中Object.prototype.toString方法的原理

    console.log(Object.prototype.toString.call(arr)) //[object Array] 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下: 15.2.4.2 ...

    javascript使用中为什么10..toString()正常而10.toString()出错呢

    这个问题是在著名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错...因为它既可能是一个浮点数的标志,又可能是取一个对象的

    用Object.prototype.toString.call(obj)检测对象类型原因分析

    console.log(Object.prototype.toString.call(obj) === "[object Object]"); 使用以上方式可以很好的区分各种类型: (无法区分自定义对象类型,自定义类型可以采用instanceof区分) console.log(Object.prototype....

    浅谈C#中ToString()和Convert.ToString()的区别

    而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象。 二、ToString()和Convert.ToString()的区别  一般情况下,这两种方法都可以通用,但是当返回的数据类型...

    node.js中的buffer.toString方法使用说明

    方法说明: 将buffer对象转换成指定的字符编码的字符串。 语法: 代码如下: buffer.toString([encoding], [start], [end]) 接收参数: encoding 转换成字符串后的字符编码,默认为 ‘utf8′ start buffer 转换的...

    最好的java对象ToString处理方案,ToString基类

    每个项目我都必用的工具类,使用非常简单,放到项目目录中,java对象继承这个ToString类就可以,用在代码日志里特别方便,还支持过滤特定字段,满足日志保密性要求

    计算机后端-Java-Java核心基础-第14章 面向对象06 18. toString()的使用.avi

    计算机后端-Java-Java核心基础-第14章 面向对象06 18. toString()的使用.avi

    JavaScript的Number对象的toString()方法

    toString()方法可以把Number对象转换成字符串,并返回此字符串,本文给大家介绍JavaScript的Number对象的toString()方法,对javascript对象方法相关知识感兴趣的朋友一起学习吧

    Vue源码中要const _toStr = Object.prototype.toString的原因分析

    其中作者用了Object.prototype.toString这个方法来判断类型,但是并没有直接用,而是单独保存在一个变量: const _toStr = Object.prototype.toString 那么为什么要这么做呢? 先说下判断类型。众所周知,typeof在...

    关于toString()为什么不能通过Object.toString()调用

    记录一些学习中遇到的问题,如果理解的有什么错误希望大佬们能帮我指正。 一、为什么有这个问题? 在学习他人写的js教程时,了解到获取一个值的数据类型时,使用type ...console.log(Object.prototype.toString.call(te

    crypto-js base64

    } else if (typeof(word) == 'object') {//对象格式的转成json字符串 data = JSON.stringify(word); var srcs = CryptoJS.enc.Utf8.parse(data); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode...

    1this,tostring类的继承.rar

    因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同...

    js资料toString 方法

    toString 方法 返回对象的字符串表示。 objectname.toString([radix])参数 objectname 必选项。要得到字符串表示的对象。 radix 可选项。指定将数字值转换为字符串时的进制。 说明 toString 方法是所有内建的...

    javascript中Number对象的toString()方法分析

    此方法可以把Number对象转换成字符串,并返回此字符串。 语法结构如下: 代码如下:NumberObject.toString(radix) 参数列表: 参数 描述 radix 可选。规定表示数字的基数,使2 ~ 36 之间的整数。若省略该参数,则...

    PHP面向对象技术_全面讲解

    本部分一共包括以下一些技术点: 1.面象对象的概念 2.什么是类, 什么是对象, 类和...17.__toString()方法 18.克隆对象 19.__call处理调用错误 20.自动加载类 21.把对象串行化 22.抽象方法和抽象类 23.php5接口技术

    php面向对象技术

    本部分一共包括以下一些技术点: 1.面向对象的概念 2.什么是类,什么是对象,类和...17.__toString()方法 18.克隆对象 19.__call 处理调用错误 20.自动加载类 21.把对象串行化 22.抽象方法和抽象类 23.php5 接口技术

    toStringGen:这是一个想法插件,此插件提供了toString方法,该方法返回json格式的实体的字符串

    右键选择一个或多个java类文件,批量生成 toString(), 此方法相当于将对象转换成json字符串, 不同与idea自带toString()方法。 特别是用于在日志中打印对象时,直接 logging.info(对象引用变量), 即可以打印对象的...

    php5面向对象详解

    1.面象对象的概念 2.什么是类, 什么是对象, 类和对象这间的关系 ...17.__toString()方法 18.克隆对象 19.__call处理调用错误 20.自动加载类 21.把对象串行化 22.抽象方法和抽象类 23.php5接口技术

Global site tag (gtag.js) - Google Analytics