問:什麼是Object類?
答:Object類存儲在java.lang包中,是所有java類(Object類除外)的終極父類。當然,數組也繼承了Object類。然而,接口是不繼承Object類的,Object類不作為接口的父類。
下面,我們就通過實例,對object進行分析
public class ObjectStu {/*Object類:java裡所有類的父類,頂層的類*equals:判斷兩個對像是否"相等"; *hashcode:返回一個對象的哈希碼值,是一個整數*因為之後的容器,例如hashset和hashMap會對元素進行去重的處理;所以equals和hashcode需要同時重寫; *重寫之後需要滿足的標準: *當equals的結果為true的時候,要求兩個對象的hashcode值相等; *當equals的結果為false的時候,要求兩個對象的hashcode值不等;(hashcode可以相等,但是如果不等可以提升效率) *toString:返回對象的字符串表示*作用:方便程序內查看對象屬性,方便調試代碼*debug學習: *1.在可能出現bug的地方設置斷點*2.run as debug *3.f6,執行當前代碼;f5,進入當前本句代碼的方法內部;f8,快速跳到下一個斷點,如果沒有下一個斷點,運行餘下所有代碼*equals: *1.一致性:使用對象A調用equals和對象b進行比較,每一次的結果都應該一樣*2.自反性:對象A調用equals比較對象b和對象b調用equals比較對象a的結果應該一樣*/public static void main(String[] args) {Person per = new Person("小王",10,150);Person per1 = new Person("小王",20,140);Person per2 = per;System.out.println(per==per1);System.out.println(per.equals(per1));String str = "123";str.equals("123");str.hashCode();System.out.println(per.hashCode());System.out.println(per1.hashCode());System.out.println(per2.hashCode());System.out.println(per);System.out.println(per1);}}class Person {String name;int age;int height;public Person(String name, int age,int height) {super();this.height = height;this.name = name;this.age = age;}/*@Override public boolean equals(Object obj) { if(this==obj){ return true; } if(obj instanceof Person){ Person per = (Person)obj; if(this.name.equals(per.name)&&this.age==per.age){ return true; } } return false; }*///重寫hashcode/*@Override public int hashCode(){ return name.hashCode()+age*31+height*31; }*/@Override public int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + height;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Override public Boolean equals(Object obj) {if (this == obj) return true;if (obj == null) return false;if (getClass() != obj.getClass()) return false;Person other = (Person) obj;if (age != other.age) return false;if (height != other.height) return false;if (name == null) {if (other.name != null) return false;} else if (!name.equals(other.name)) return false;return true;}@Override public String toString() {return "Person[name="+name+",age="+age+"]";}}總結
以上就是本文關於java中object類實例分析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:
java內部測試類代碼詳解
java中繼承測試代碼分析
java中stack(棧)的使用代碼實例
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!