关于重写 toString() 方法

  1. 关于重写 toString() 方法




     学习方法一说。

     

    首先,我们先来创建一个Persion类,它只简单的包含 firstname 和 lastname,当然,加上它的setter 和 getter 法。放在com.bean包下:

    package com.bean;
    
    public class Persion {
            private String firstname;
            private String lastname;
            public String getFirstname() {
                    return firstname;
            }
            public void setFirstname(String firstname) {
                    this.firstname = firstname;
            }
            public String getLastname() {
                    return lastname;
            }
            public void setLastname(String lastname) {
                    this.lastname = lastname;
            }
    
    }
    

     接下来,新建一个类,名为Test,让它包含main函数:

    package com.override;
    
    import com.bean.Persion;
    public class Test {
    
            public static void main(String[] args) {
                    Persion p = new Persion();
                    p.setFirstname("Fire");
                    p.setLastname("Water");
                    System.out.println(p.toString());
            }
    
    }
    

     可以看到,运行之后,结果为:

    com.bean.Persion@c17164
    

     

       注:打印一个对象,可以直接System.out.println(p);其实java会自动调用p 的 toString() 方法。

     

     但是我们一般想要的结果并不是这样,因为object类的toString()方法总是返回对象的实现类类名 + @ + hashCode值。这显然不能满足我们的需求。像这里,我们是希望能打印出p的全名出来,这时,就需要重写toString()方法,因为重写了toString()之后,那么p在调用toString()方法的时候,会优先调用自己类里的toString()方法。

    修改后的类如下:

     

    package com.bean;
    
    public class Persion {
            private String firstname;
            private String lastname;
            public String getFirstname() {
                    return firstname;
            }
            public void setFirstname(String firstname) {
                    this.firstname = firstname;
            }
            public String getLastname() {
                    return lastname;
            }
            public void setLastname(String lastname) {
                    this.lastname = lastname;
            }
                    //重写toString方法
            public String toString(){
                    return firstname + " " + lastname;
            }
    }
    

     

    这时,打印出来的结果就是

     

    Fire Water
    

     

    当然,可根据不同的需求来编写如何打印对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值