java重写toString()方法

  toString()方法是Object类的方法,调用toString()会返回对象的描述信息。

  1)为什么重写toString()方法呢?

  如果不重写,直接调用Object类的toString()方法,打印的是该对象的内存地址(类名@哈希码值)。如下代码所示:

class Person {
    String name;
    String sex;
    int age;
    public Person() {}
    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
}

class Demo {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println(p);
    }
}

运行结果:Person@10dea4e

  从上面代码可知,调用p的toString方法,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如父类的指定的功能能不能满足要求,那么子类可以复写父类的功能函数,那么该对象再调用toString()方法时,则会调用子类复写的toString方法。

  (2)一般什么时候重写toString方法?

  一般在编写代码,POJO类必须重写toString方法。如果继承了另一个POJO类,注意在前面加一下super.toString。

  POJO(Plain Ordinary Java Object)即普通的java类,具有一部分getter/setter方法的那种类就可以称作为POJO类。重写toString()方法后,在方法执行跑出异常时,可以直接调用POJO的toString()方法打印其属性值,便于排查问题。

  (3)如何重写toString()?

  toString()方法重写代码样例如下: 

class Person {
    String name;
    String sex;
    int age;

    public Person() {
    }

    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    }

}

  编程习惯:开发者要对自定义的类重写toString(),对对象做详细的说明。

原文地址:https://www.cnblogs.com/sheng-sjk/p/9074815.html

时间: 2024-10-11 00:08:44

java重写toString()方法的相关文章

java重写toString方法

在输出对象属性时,重写toString按照你希望的输出形式重写 object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按照你想要的格式去字符串一些对象的时候,就需要重写toString了. 在实体类中重写toString方法 public String toString() { return "Zoo{" + "id=" + id + ", name='" + nam

Effective Java 第三版——12. 始终重写 toString 方法

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. 12. 始终重写 toString 方法 虽然Object类提供了toString方法的实现,但它返回的字符串通常不是你的类的用户想要看到的. 它由类名后跟一个"

Java之toString方法

在Java中所有的类都有一个共同的父类Object(默认继承,不用加extends关键字),toString方法就是Object类的一个方法,用来返回该对象的字符串表示形式(个人总结:需要把该类转换成String类型的时候就会调用该方法) 父类Object中的toString()方法 可以看到该方法返回的是"类名@hashCode值"形式的字符串 但这并不是我们所想要的结果,我们希望这个方法返回的是该类的所有属性拼接的字符串,Object的toString方法已经不够用了,因此,我们需

[C#编程指南]重写ToString方法

C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToString 方法,此方法可让这些变量将其内容作为字符串返回: int x = 42; string strx = x.ToString(); Console.WriteLine(strx); // Output: // 42 创建自定义类或结构时,应该重写 ToString 方法,以便向客户端代码提供类型

C#...何时需要重写ToString()方法?

一般类型,都是继承自System.Object类,默认情况下,object类的ToString方法会返回当前类的类型的字符串表达形式.但也有例外!! DateTime,它就重写ToString方法,DateTime类型的实例的ToString方法返回的就是一个日期的字符串表达形式,而不是DateTime类型的字符串表达形式. 还有一种使用的情况就是,当我们有了一个Student类时,我们使用Console.WriteLine(student),将会输出 "命名空间.Student".这

整个对象也可以打印?-重写toString方法

对象也可以打印? 看到对象是可以打印的,打印了全类名+内存地址 若想自定义打印类的详细信息就要在Person类中重写toString方法 @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("姓名:"+name+"\n"); sb.append("年级:"+gender+"\n"); sb.append(&

重写ToString()方法

重写ToString()方法子类可以重写父类的虚方法Person p=new Person();Console.WriteLine(p.ToString());Console.Readkey(); public class Person{ public override void ToString() { return "Hello World"; } }

JAVA中toString方法的作用

因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法 回答补充: 写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用 例子1: public class Orc { public st

java对象重写toString方法

java Object的toString方法定义是 [email protected],然而对于对象,很多时候这玩意并没有什么卵用,现在比较常用的需求是将对象转为json字符串,只需在对象中做如下修改即可: import com.alibaba.fastjson.JSON; @Override public String toString() { return JSON.toJSONString(this); }