Object对象是java中对象的始祖,其有一些方法是经常需要我们来改写的:
toString方法
该方法是Object的方法,Object的这的方法返回的是对象的文件结构加上对象的hashcode,但是有些类对这个方法进行的改写返回的是对应的string的描述
比如,String类就是这样的,改写了从Object继承来的这个方法
一般情况下,我们都需要自己改写这个方法,public String toString(),获得有关对象的详细描述。
equals方法的改写
“==”比较的是对象的属性值,Object.equals()方法一般比较的是不是同一个对象,也就是比较两个对象的引用值是不是相等。这与我们的常理不服,我们更多的是比较两个对象的属性只是不是相同,这是需要们改写一下equals的方法,String本身已经改写
1 public boolean equals(Object obj) 2 { 3 Person p = null; 4 if(obj instanceof Percon) 5 p = (Person) obj; 6 if(this.name.equals(p.name)) 7 { 8 return ture;//这个意思说只要名字相同就是同一个人,包括双胞胎 9 } 10 return false; 11 }
hashCode方法
采用底层操作系统的hash算法返回对象的hash值,java认为如果equals的值为true,那么hashCode必须相同,如果改写的quals方法,也要改写hashCode
常见的改写方法可以参见javacore