美文网首页
《Oracle Java SE编程指南》16-02:toStri

《Oracle Java SE编程指南》16-02:toStri

作者: AT阿宝哥 | 来源:发表于2020-04-22 22:23 被阅读0次
    课程封面-JavaSE-AT阿宝哥

    内容导航

    • 前言
    • 1、toString()方法
    • 2、不重写toString()方法
    • 3、重写toString()方法

    前言

    我们在调试时,怎么打印出一个对象的状态呢?


    1、toString()方法

    Object 类的 toString 方法返回一个该对象的字符串表示,或者说将任何一个对象转换成字符串返回,这对于调试非常有用。建议所有子类都重写此方法。方法定义如下:

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

    通过观察,该字符串由类名、at 标记符@和此对象哈希码的无符号十六进制表示组成。

    示例代码:

    
    package com.company.project.demo0201;
    
    public class Client {
    
        public static void main(String[] args) {
            // 创建Object对象
            Object object = new Object();
    
            // Object类的toString()方法
            System.out.println(object.getClass().getName());
            System.out.println(object.hashCode());
            System.out.println(Integer.toHexString(object.hashCode()));
            System.out.println(object.toString());
            
            // 默认是不需要显式的写.toString()方法的,推荐写法。
            System.out.println(object);
    
        }
    
    }
    
    

    运行结果:

    
    java.lang.Object
    2018699554
    7852e922
    java.lang.Object@7852e922
    java.lang.Object@7852e922
    
    

    打印时,默认不需要显式的写.toString()方法,推荐该写法。


    2、不重写toString()方法

    如果没有重写toString()方法,将调用Object类的toString()方法。

    示例代码-Message类:

    
    
    package com.company.project.demo0202;
    
    //类:消息。
    public class Message {
        // 发件人
        private String from;
        // 收件人
        private String to;
        // 发送时间
        private String sendTime;
        // 接受时间
        private String receiveTime;
    
        public Message() {
    
        }
    
        public String getFrom() {
            return from;
        }
    
        public void setFrom(String from) {
            this.from = from;
        }
    
        public String getTo() {
            return to;
        }
    
        public void setTo(String to) {
            this.to = to;
        }
    
        public String getSendTime() {
            return sendTime;
        }
    
        public void setSendTime(String sendTime) {
            this.sendTime = sendTime;
        }
    
        public String getReceiveTime() {
            return receiveTime;
        }
    
        public void setReceiveTime(String receiveTime) {
            this.receiveTime = receiveTime;
        }
    
    }
    
    
    

    示例代码-Client 类:

    
    
    package com.company.project.demo0202;
    
    public class Client {
    
        public static void main(String[] args) {
    
            Message message = new Message();
    
            message.setFrom("AT阿宝哥");
            message.setTo("朋友");
    
            System.out.println(message);
    
        }
    
    }
    
    
    

    运行结果:

    
    com.company.project.demo0202.Message@7852e922
    
    

    3、重写toString()方法

    如果重写了toString()方法,将调用自己的toString()方法。

    示例代码-Message 类:

    
    
    package com.company.project.demo0203;
    
    //类:消息。
    public class Message {
        // 发件人
        private String from;
        // 收件人
        private String to;
        // 发送时间
        private String sendTime;
        // 接受时间
        private String receiveTime;
    
        public Message() {
    
        }
    
        public String getFrom() {
            return from;
        }
    
        public void setFrom(String from) {
            this.from = from;
        }
    
        public String getTo() {
            return to;
        }
    
        public void setTo(String to) {
            this.to = to;
        }
    
        public String getSendTime() {
            return sendTime;
        }
    
        public void setSendTime(String sendTime) {
            this.sendTime = sendTime;
        }
    
        public String getReceiveTime() {
            return receiveTime;
        }
    
        public void setReceiveTime(String receiveTime) {
            this.receiveTime = receiveTime;
        }
    
        @Override
        public String toString() {
            return "Message [from=" + from + ", to=" + to + ", sendTime=" + sendTime + ", receiveTime=" + receiveTime + "]";
        }
    
    }
    
    

    示例代码-Client 类:

    
    
    package com.company.project.demo0203;
    
    public class Client {
    
        public static void main(String[] args) {
    
            Message message = new Message();
    
            message.setFrom("AT阿宝哥");
            message.setTo("朋友");
    
            System.out.println(message);
        }
    
    }
    
    
    

    运行结果:

    
    Message [from=AT阿宝哥, to=朋友, sendTime=null, receiveTime=null]
    
    

    在重写时,建议使用Eclipse的快捷键自动生成toString()代码。如有特殊需要,可手动重写。


    持续更新,欢迎留言提议!
    码字很累,多点赞多赞赏!


    扫描二维码,关注AT阿宝哥

    相关文章

      网友评论

          本文标题:《Oracle Java SE编程指南》16-02:toStri

          本文链接:https://www.haomeiwen.com/subject/riigihtx.html