`
firecym
  • 浏览: 46658 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于重写 toString() 方法

阅读更多

 学习Java的人都知道,Java所有类都是object的子类。所以,所有的Java对象都可以调用object类提供的方法。其中,toString()就是其中一个。下面讲解一下为什么会有重写toString()方法一说。

 

首先,我们先来创建一个Persion类,它只简单的包含 firstname 和 lastname,当然,加上它的setter 和 getter 法。放在com.bean包下:

package com.bean;

public class Persion {
	private String firstname;
	private String lastname;
	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}
	public String getLastname() {
		return lastname;
	}
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}

}

 接下来,新建一个类,名为Test,让它包含main函数:

package com.override;

import com.bean.Persion;
public class Test {

	public static void main(String[] args) {
		Persion p = new Persion();
		p.setFirstname("Fire");
		p.setLastname("Water");
		System.out.println(p.toString());
	}

}

 可以看到,运行之后,结果为:

com.bean.Persion@c17164

 

   注:打印一个对象,可以直接System.out.println(p);其实java会自动调用p 的 toString() 方法。

 

 但是我们一般想要的结果并不是这样,因为object类的toString()方法总是返回对象的实现类类名 + @ + hashCode值。这显然不能满足我们的需求。像这里,我们是希望能打印出p的全名出来,这时,就需要重写toString()方法,因为重写了toString()之后,那么p在调用toString()方法的时候,会优先调用自己类里的toString()方法。

修改后的类如下:

 

package com.bean;

public class Persion {
	private String firstname;
	private String lastname;
	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}
	public String getLastname() {
		return lastname;
	}
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
                //重写toString方法
	public String toString(){
		return firstname + " " + lastname;
	}
}

 

这时,打印出来的结果就是

 

Fire Water

 

当然,可根据不同的需求来编写如何打印对象。

分享到:
评论

相关推荐

    重写toString和equals方法

    Java 对象的toString和equals方法重写 在 Java 中,每个对象都继承自 Object 类,而 Object 类中定义了两个重要的方法:toString() 和 equals()。这两个方法都是非常重要的,它们分别用于对象的字符串表示和对象...

    在C#的类或结构中重写ToString方法的用法简介

    C# 中的每个类或结构都隐式...创建自定义类或结构时,应该重写 ToString 方法,以便向客户端代码提供类型信息。 当您决定通过此方法提供的信息的类型时,应考虑您的类或结构是否会被不受信任的代码使用。请务必确保您

    js中toString方法3个作用.docx

    在上面的例子中,我们重写了 toString 方法,以便于返回一个自定义的字符串表示形式。 检测对象的类型 toString 方法的第二个作用是检测对象的类型。例如: ``` let arr = [] console.log(Object.prototype....

    java tostring方法重写代码示例

    Java toString方法重写代码示例 Java 中的 toString() 方法是 Object 类中的一个方法,该方法返回对象的字符串表示形式。默认情况下,toString() 方法将返回对象的类名和哈希码,但在实际开发中,我们通常需要...

    Java自动添加重写的toString方法详解

    然而,这样的输出对于调试和日志记录通常并不友好,所以我们常常需要重写`toString()`方法来提供更有意义的信息。 在Java中,`toString()`方法的重写通常是为了展示对象内部的状态,即它的成员变量的值。这样做可以...

    动力节点_Java基础视频教程52_重写toString方法

    动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...

    浅谈Java编程ToString()方法重写的意义

    在Java编程中,`toString()`方法的重写是一项重要的实践,尤其对于自定义类的调试和日志记录。`toString()`方法是Java中`Object`类的一个成员,它默认返回对象的类名以及在内存中的哈希码,这对于开发者来说往往并不...

    16.通过重写 class 的 ToString().pdf

    根据提供的文件内容,以下是关于C#中重写ToString()方法以及枚举类型的一些知识点: 1. 枚举类型(Enum)在C#中的使用: 在C#中,枚举类型是一种特殊的数据类型,用于表示一组命名的整型常量。枚举类型提高了代码的...

    C++重写String类

    四、常见挑战与解决方法 1. **内存泄漏**:确保每次分配内存后都有对应的释放操作。 2. **边界检查**:访问字符串时进行边界检查,防止越界。 3. **效率**:优化内存分配和复制操作,减少不必要的拷贝。 4. **一致性...

    java中的tostring方法的具体用法

    在实际应用中,我们可以根据需要在用户自定义类型中重写 toString 方法,以返回该对象的属性信息。例如,String 类重写了 toString 方法,返回字符串的值。基本数据类型转换为 String 类型也是通过调用对应包装类的 ...

    toString完美解释

    例如,String 类重写了 Object 的 toString() 方法,以返回字符串的实际值。这样,当我们使用 System.out.println() 输出一个字符串时,实际上是调用了 String 类的 toString() 方法。 toString() 方法的优点是,...

    Java Object toString方法原理解析

    Java Object toString方法原理解析 ...结论:通过对 Java Object toString 方法的分析,我们可以更好地理解 Java 中的对象表示形式和类加载机制,并掌握如何重写 toString 方法以自定义对象的字符串表示形式。

    toString()方法1

    例如,对于一个简单的`ToStringTest`类,如果它没有重写`toString()`方法,那么调用`toString()`将会得到类似于`ToStringTest@12345678`的结果,这里的数字`12345678`是该对象在内存中的哈希码的十六进制形式。...

    Java toString的性能优化方案比较

    建议所有子类重写该方法”。这里有趣的是“简明”和“详实”。我们所钟爱的IDE们常常为我们生成equals/hashcode/toString这些方法,且我们通常不再去管它们。此外,这些IDE们提供了许多方式来生成我们自己

    浅析JAVA中toString方法的作用

    因此,当创建自定义类时,通常会重写`toString()`方法,以便提供更有意义的信息。例如,如果你有一个名为`Person`的类,你可以重写`toString()`来返回包含姓名、年龄等属性的字符串。 让我们看几个示例来进一步理解...

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

    在实际使用中,子类只需继承`ToString`基类,并可能需要重写一个`getFieldsToExclude`方法,返回一个包含要过滤的字段名的列表。然后,`toString`方法会自动处理其余的工作,生成一个包含所有未过滤字段的字符串。 ...

    bean运行时跟综实例-TOSTRING

    标题中的"bean运行时跟综实例-TOSTRING"强调了在运行时通过重写`toString()`方法来追踪和诊断问题的重要性。描述指出,这样做可以确保在不影响系统正常运行性能的前提下,提供一个方便的手段在生产环境中对问题进行...

    JavaScript Object toString 初始补充

    然而,`toString`方法的一个重要特性是它可以被重写。通过在自定义对象的构造函数中覆盖`toString`,开发者可以定制返回的字符串内容,以反映对象的属性或状态。这在调试、日志记录和信息展示等方面非常有用。 此外...

    equals,hashcode,toString

    在这个类中,很可能已经重写了`equals()`, `hashCode()` 和 `toString()` 方法,以便更好地处理对象的比较、哈希存储和输出信息。 为了实现`DBObject`类的正确行为,开发者可能考虑了以下几点: 1. 在`equals()`...

Global site tag (gtag.js) - Google Analytics