java中的toString() 方法(多看本文的例子!)

toString() 方法:

    toString()方法在Object类中定义,其返回值是String类型,描述当前对象的有关信息
    在进行String与其它类型数据的连接操作时,自动调用toString()方法
    可以根据需要在用户自定义类型中重写toString()方法
    基本类型数据转换为String类型时,调用了对应封装类的toString()方法

public class Person {
    private String name;
    private int age;
    private char sex;
    public Person()
    {
    }
    public Person(String name,int age, char sex)
    {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    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;
    }
    public char getSex() {
        return sex;
    }
    public void setSex(char sex) {
        this.sex = sex;
    }
    public boolean equals(Object obj)
    {
        if(obj==null)
        {
            return false;
        }
        if(obj==this)//传递进来的参数是否等于本对象
        {
            return true;
        }
        if(obj instanceof Person)
        {
            Person p = (Person)obj;//强制类型转换成Person
            return p.getName().equals(this.name);//String内重写的equals方法,写这句的目的是重写equeals方法,如果姓名相等,则p1跟p2相等。
        }
        return super.equals(obj);
    }
    //重写hashCode方法
    public int hashCode()
    {
        return this.name.hashCode()*328;
    }
    //重写toString 方法
    public String toString()
    {
        return "姓名为:"+this.name+"年龄为:"+this.age+"性别为:"+this.sex;
    }
}

 

public class TestPerson {
    public static void main(String args[])
    {
        Person p1 = new Person("王惠", 24, '女');
        Person p2 = new Person("吴嫚真",23,'女');
       
        if(p1.equals(p2))
        {
            System.out.println("她们相等..");
        }
        else
        {
            System.out.println("她们不相等");
        }
        System.out.println(p1.hashCode());
        System.out.println(p2.hashCode());
        System.out.println(p1);
        System.out.println(p2);
    }
}

输出结果:

她们不相等
308893672
-1548821240
姓名为:王惠年龄为:24性别为:女
姓名为:吴嫚真年龄为:23性别为:女


注:如果    Person p2 = new Person("王惠",23,'女');

则输出:

她们相等..
308893672
308893672
姓名为:王惠年龄为:24性别为:女
姓名为:王惠年龄为:23性别为:女

 

如果没有重写toString 方法,那么最后输出结果(因为toString返回的是 hashCode码):

她们不相等
308893672
-1548821240
com.cstp.java1223.Person@126957e8
com.cstp.java1223.Person@a3aedd08

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值