java中的toString() 方法,javatostring
java中的toString() 方法,javatostring
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
相关文章
- 暂无相关文章
用户点评