java Object类
Object包含了9大常用方法:
getClass()
hashcode()
toString()
equals()
finalize()
notify()
notifyAll()
wait()
clone()
一、toString()
方法摘要
public String toString():返回该对象的字符串表示。
toString方法返回该对象的字符串表示,其实该字符串内容就是:对象的类型名+@+内存地址值。
查看源码:
1 public String toString() { 2 3 return getClass().getName() + "@" + Integer.toHexString(hashCode()); 4 5 }
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
比如:
1 public static class Student { 2 3 public String name; 4 public Integer age; 5 6 public Student(String name, Integer age) { 7 this.name = name; 8 this.age = age; 9 } 10 11 @Override 12 public String toString() { 13 return "Student{" + "name='" + name + "'" + ", age=" + age + '}'; 14 } 15 }
二、equals()
方法摘要:
public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。
查看源码:
1 public boolean equals(Object obj) { 2 3 return (this == obj); 4 5 }
可以看出,Object类中的equals()方法也是比较引用是否相同。那么,想要比较值是否相同,该怎么办呢?这就需要重写equals()。
重写equals),要注意以下几点注意事项:
1) 对任意x,x.equals(x)一定返回true
2)对任意x,y,如果x.equals(y)返回true,则y.equals(x)也一定返回true
3)对任意x,y,z,如果x.equals(y)返回true,y.equals(z)也返回true,则x.equals(z)也一定返回true
4)对任意x,y,如果对象中用于比较的信息没有改变,那么无论调用多少次x.equals(y),返回的结果应该保持一致,要么一直返回true,要么一直返回false
5)对任意不是null的x,x.equals(null)一定返回false
标签:返回,java,Object,equals,toString,true,public From: https://www.cnblogs.com/hld123/p/18051529