学习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
当然,可根据不同的需求来编写如何打印对象。
分享到:
相关推荐
Java 对象的toString和equals方法重写 在 Java 中,每个对象都继承自 Object 类,而 Object 类中定义了两个重要的方法:toString() 和 equals()。这两个方法都是非常重要的,它们分别用于对象的字符串表示和对象...
C# 中的每个类或结构都隐式...创建自定义类或结构时,应该重写 ToString 方法,以便向客户端代码提供类型信息。 当您决定通过此方法提供的信息的类型时,应考虑您的类或结构是否会被不受信任的代码使用。请务必确保您
在上面的例子中,我们重写了 toString 方法,以便于返回一个自定义的字符串表示形式。 检测对象的类型 toString 方法的第二个作用是检测对象的类型。例如: ``` let arr = [] console.log(Object.prototype....
Java toString方法重写代码示例 Java 中的 toString() 方法是 Object 类中的一个方法,该方法返回对象的字符串表示形式。默认情况下,toString() 方法将返回对象的类名和哈希码,但在实际开发中,我们通常需要...
然而,这样的输出对于调试和日志记录通常并不友好,所以我们常常需要重写`toString()`方法来提供更有意义的信息。 在Java中,`toString()`方法的重写通常是为了展示对象内部的状态,即它的成员变量的值。这样做可以...
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...
在Java编程中,`toString()`方法的重写是一项重要的实践,尤其对于自定义类的调试和日志记录。`toString()`方法是Java中`Object`类的一个成员,它默认返回对象的类名以及在内存中的哈希码,这对于开发者来说往往并不...
根据提供的文件内容,以下是关于C#中重写ToString()方法以及枚举类型的一些知识点: 1. 枚举类型(Enum)在C#中的使用: 在C#中,枚举类型是一种特殊的数据类型,用于表示一组命名的整型常量。枚举类型提高了代码的...
四、常见挑战与解决方法 1. **内存泄漏**:确保每次分配内存后都有对应的释放操作。 2. **边界检查**:访问字符串时进行边界检查,防止越界。 3. **效率**:优化内存分配和复制操作,减少不必要的拷贝。 4. **一致性...
在实际应用中,我们可以根据需要在用户自定义类型中重写 toString 方法,以返回该对象的属性信息。例如,String 类重写了 toString 方法,返回字符串的值。基本数据类型转换为 String 类型也是通过调用对应包装类的 ...
例如,String 类重写了 Object 的 toString() 方法,以返回字符串的实际值。这样,当我们使用 System.out.println() 输出一个字符串时,实际上是调用了 String 类的 toString() 方法。 toString() 方法的优点是,...
Java Object toString方法原理解析 ...结论:通过对 Java Object toString 方法的分析,我们可以更好地理解 Java 中的对象表示形式和类加载机制,并掌握如何重写 toString 方法以自定义对象的字符串表示形式。
很多内置类型以及自定义类都重写了这个方法,以便提供更丰富的输出格式。以下是对C#中`ToString()`方法的一些常见用途和格式说明的详细总结。 1. **基本数据类型**: - 对于`int`、`double`等基本数据类型,`...
例如,对于一个简单的`ToStringTest`类,如果它没有重写`toString()`方法,那么调用`toString()`将会得到类似于`ToStringTest@12345678`的结果,这里的数字`12345678`是该对象在内存中的哈希码的十六进制形式。...
因此,当创建自定义类时,通常会重写`toString()`方法,以便提供更有意义的信息。例如,如果你有一个名为`Person`的类,你可以重写`toString()`来返回包含姓名、年龄等属性的字符串。 让我们看几个示例来进一步理解...
在实际使用中,子类只需继承`ToString`基类,并可能需要重写一个`getFieldsToExclude`方法,返回一个包含要过滤的字段名的列表。然后,`toString`方法会自动处理其余的工作,生成一个包含所有未过滤字段的字符串。 ...
建议所有子类重写该方法”。这里有趣的是“简明”和“详实”。我们所钟爱的IDE们常常为我们生成equals/hashcode/toString这些方法,且我们通常不再去管它们。此外,这些IDE们提供了许多方式来生成我们自己
标题中的"bean运行时跟综实例-TOSTRING"强调了在运行时通过重写`toString()`方法来追踪和诊断问题的重要性。描述指出,这样做可以确保在不影响系统正常运行性能的前提下,提供一个方便的手段在生产环境中对问题进行...
然而,`toString`方法的一个重要特性是它可以被重写。通过在自定义对象的构造函数中覆盖`toString`,开发者可以定制返回的字符串内容,以反映对象的属性或状态。这在调试、日志记录和信息展示等方面非常有用。 此外...