在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类型。
分享到:
相关推荐
console.log(Object.prototype.toString.call(arr)) //[object Array] 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下: 15.2.4.2 ...
在一般情况下,ToString()和Convert.ToString()方法都可以通用,但是在处理可能为null的对象时,Convert.ToString()方法更为安全。因为ToString()方法在对象为null时将抛出异常,而Convert.ToString()方法则返回一个...
- 使用`map.toString()`方法将Map对象转换为字符串。 - 为了便于后续处理,可以对生成的字符串进行一定的格式化,例如去除括号`{}`,并用特定字符替换分隔符``,`。 2. **字符串转换为Map对象:** - 首先,对经过...
在上面的例子中,我们使用 Object.prototype.toString.call(arr) 来检测数组的类型。该方法返回 `[object Array]`,表明该对象是一个数组。 返回该数字对应进制的字符串 toString 方法的第三个作用是返回该数字...
这个问题是在著名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错...因为它既可能是一个浮点数的标志,又可能是取一个对象的
在C#编程语言中,`Convert.ToString` 和 `ToString` 都是用来将对象转换为字符串的方法,但它们在处理特定情况时有所不同,特别是在处理 `null` 值时。了解这些区别对于C#开发者,尤其是初学者,是至关重要的。 ...
而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象。 二、ToString()和Convert.ToString()的区别 一般情况下,这两种方法都可以通用,但是当返回的数据类型...
`Environment.OSVersion.ToString`是.NET Framework提供的一条内置方法,用于检索当前运行环境的操作系统版本信息。下面我们将深入探讨这个知识点。 首先,`Environment`类是System命名空间中的一个静态类,它提供...
因此,当涉及到对 null 或者特定对象进行类型检测时,我们需要借助 Object.prototype.toString.call(obj) 方法。而对于自定义的对象类型,instanceof 操作符则是一个更好的选择。 通过上述方法,我们可以清楚地分辨...
在给定的`标题`中提到的"最好的java对象ToString处理方案,ToString基类"指的是一个优化的`toString`实现,通过创建一个基类,让所有Java对象都可以轻松地继承并自定义其`toString`行为。 在`描述`中,提到这个工具...
Object.prototype.toString 方法是 JavaScript 中几乎每个对象都有的一个方法,用于输出当前变量的信息。然而,对于我们最常用的 Object 对象,每次使用 toString 方法都会打印出 “[object Object]” 的结果,让人...
本文的重点是Node.js中Buffer对象的toString方法,这个方法可以将Buffer对象中的二进制数据转换为指定编码的字符串。 buffer.toString()方法说明: - toString()是Buffer类的实例方法,用于将Buffer中的数据转换为...
在JavaScript中,`toString`方法是一个内置的方法,用于将对象转换为字符串形式。这个方法对于理解和调试代码至关重要,因为当你尝试打印或输出一个对象时,JavaScript引擎默认会调用该对象的`toString`方法。本篇...
`ToString` 方法是 C# 中一个非常实用且灵活的功能,它允许开发人员自定义对象如何转换为字符串形式。这对于数据展示、日志记录以及与其他系统交互时尤为重要。本文将详细介绍 C# 中 `ToString` 方法的各种格式化...
在编程语言如C#中,`ToString()`方法是一个非常重要的功能,用于将对象转换为其等价的字符串表示。在C#中,`ToString()`方法可以接受一个格式字符串作为参数,以控制输出的字符串格式。这个格式字符串由不同的格式...
在C#编程语言中,`ToString()`方法是一个非常重要的成员函数,它被广泛用于将各种类型的数据转换成字符串。此方法在很多情况下都非常实用,尤其是当你需要将数值、日期时间等对象显示或输出时。以下是一些`ToString...
C#语言中的ToString()方法是一个非常重要的方法,它可以将对象转换为字符串类型,以便在应用程序中进行显示或保存。然而,ToString()方法的使用却有很多 trick,需要开发者细心掌握。 1. 日期时间ToString() 在C#...