• 【 java 面向对象之 Object 类】toString() 方法的重写


    📋 个人简介

    前言

    上一节我们写了Object类中equals()方法的使用以及重写,这一节我总结一下Object类中toString()方法的使用和重写!

    toString() 方法的使用

    1.toString()方法在 Object 类中定义,其返回值是 String 类型,返回类名和它
    的引用地址。
    我们来看看源码:

    public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    
    • 1
    • 2
    • 3

    2.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。

    package 重写toString;
    
    public class Demo {
        public static void main(String[] args) {
            Person p = new Person("aniu", 21);
            System.out.println(p);
            //相当于
            System.out.println(p.toString());
        }
    }
    
    class Person{
        String name;
        int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述

    2.在进行 String 与其它类型数据的连接操作时,自动调用 toString ()方法 。

    Date now = new Date ();
    System.out.printin("now ="+ now );
    //相当于
    System.out.printin("now ="+ now.toString ())
    • 1
    • 2
    • 3
    • 4

    3.可以根据需要在用户自定义类型中重写toString()方法,像String、Date、File、包装类等都重写了Object类中的toString()方法!
    如 String 类重写了 toString ()方法,返回字符串的值。

    String s1= "hello" ;
    System.out.println(s1);
    //相当于 
    System.out.printin(s1.toString());
    
    • 1
    • 2
    • 3
    • 4

    我们来看看String类中重写的toString()方法:

      public String toString() {
            return this;
        }
    
    • 1
    • 2
    • 3

    4.基本类型数据转换为 String 类型时,调用了对应包装类的 toString ()方法

    int a = 10; 
    System.out.println("a =" + a );
    
    • 1
    • 2

    重写 toString() 方法

    手动重写

    我们可以手动重写toString()方法,输出我们想要的内容

    package 重写toString;
    
    public class Demo {
        public static void main(String[] args) {
            Person p = new Person("aniu", 21);
            System.out.println(p);
            //相当于
            System.out.println(p.toString());
        }
    }
    
    class Person{
        String name;
        int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        // 手动重写toString()
        @Override
        public String toString() {
            return "name:" + this.name + " age:" + this.age;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述

    自动重写

    像equals()一样,idea也可以帮助我们自动重写toString()方法!

    package 重写toString;
    
    public class Demo {
        public static void main(String[] args) {
            Person p = new Person("aniu", 21);
            System.out.println(p);
            //相当于
            System.out.println(p.toString());
        }
    }
    
    class Person{
        String name;
        int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

    结语

    如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。

    🏰系列专栏
    👉软磨 css
    👉硬泡 javascript
    👉flask框架快速入门

  • 相关阅读:
    golang实现循环队列
    前缀和——DP34 【模板】前缀和
    二叉树的基本性质与遍历
    数据结构--平衡二叉树
    什么是app测试,什么是web测试,app测试和web测试有什么区别
    尚硅谷设计模式(十九)中介者模式
    软件测试零基础入门好学吗?
    Go有关方法的笔记(掌握defer与闭包)
    神经网络模型结果怎么看,图像识别神经网络模型
    很后悔,才发现这个API管理神器
  • 原文地址:https://blog.csdn.net/qq_57421630/article/details/126562081