Java之重写Object类的toString方法

一、先看看重写之前的效果:

    package com.xiao.toString;
     
    /**
     * @author 笑笑
     * @Date   2018年4月14日下午10:16:36
     *    
     */
    public class Student {
        private String name;
        private int age;
        
        //空参构造
        public Student() {
        }
        //有参构造
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

    package com.xiao.toString;
     
    /**
     * @author 笑笑
     * @Date   2018年4月14日下午10:17:43
     *    
     */
    public class ToStringTest {
        
                public static void main(String[] args) {
                    //测试Object中的toString方法,Student默认继承Object类,没有重写toString方法
                    Student s = new Student("笑笑",18);
                    String s1 =s.toString();
                    System.out.println(s);
                    System.out.println(s1);
                }
        
    }
     
     

打印结果:

从上面我们可以看出,System.out.println(); 语句输出是对象的时候,会默认调用对象的toString方法;

而Object类的toString方法默认返回的是对象的完整类名+地址,一般情况下,没有较大的实际意义,所以我们一般会重写toString方法。

二.重写toString方法:

    package com.xiao.toString;
     
    /**
     * @author 笑笑
     * @Date   2018年4月14日下午10:16:36
     *    
     */
    public class Student {
        private String name;
        private int age;
        
        //空参构造
        public Student() {
        }
        //有参构造
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
        //重写Object类中的toString方法,输出所有成员变量的值
        public String toString(){
            
            return "name="+name+","+"age="+age;
        }
    }

测试:

    package com.xiao.toString;
     
    /**
     * @author 笑笑
     * @Date   2018年4月14日下午10:17:43
     *    
     */
    public class ToStringTest {
        
                public static void main(String[] args) {
                    //测试重写后的toString方法
                    Student s = new Student("笑笑",18);
                    String s1 =s.toString();
                    System.out.println(s);
                    System.out.println(s1);
                }
        
    }

打印结果:

 
---------------------
作者:Devilyang123
来源:CSDN
原文:https://blog.csdn.net/u012430402/article/details/79945135
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-05-13 17:06  天涯海角路  阅读(550)  评论(0)    收藏  举报