zoukankan      html  css  js  c++  java
  • 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(),对对象做详细的说明。

  • 相关阅读:
    .NET Core log4net 使用(转贴)
    Tomcat的工作原理
    Servlet工作原理
    java实现快速排序
    正则表达式积累
    js常用知识真理
    最常用的的设计模式
    【设计模式】单例设计模式
    java中堆栈区别,递归和迭代区别
    Struts2的工作原理
  • 原文地址:https://www.cnblogs.com/sheng-sjk/p/9074815.html
Copyright © 2011-2022 走看看