Object類

       Object類是所有類的父類,如果一個類沒有明確的繼承自另外一個類,則肯定繼承Object類。
class Demo{}

等價於以下的代碼:

       class Demo extends Object{}

       那麼既然Object類是所有類的父類,那麼就意味着,所有類的對象都可以使用Object接收。
       那麼在開發中,如果要想編寫一個完整的類,應該最少覆寫Object類中的以下幾個方法:
              · toStringpublic Sting toString(),對象打印的時候默認調用
              · equalspublic boolean equals(Object obj),對象比較
              · hashCodepublic int hashCode()
1 toString()方法是在對象打印的時候默認調用的

class Person{

};

public class Demo13{

         public static void main(String artgs[]){

                   Person p = new Person() ;

                   System.out.println(p) ;

         }

};

以上程序打印的結果爲:
Person@757aef

       如果在以上打印的時候把打印語句編寫爲:“System.out.println(p.toString()) ;”,則效果與之前是一樣的,那就證明,在打印對象的時候實際上調用toString()方法,是默認調用的。此方法爲Object
       如果現在在Person類中覆寫了toString()方法:
class Person{

         public String toString(){

                   return "HELLO WORLD!!!" ;

         }

};

public class Demo13{

         public static void main(String artgs[]){

                   Person p = new Person() ;

                   System.out.println(p) ;

         }

};

       則打印結果爲:
HELLO WORLD!!!

       實際上可以在toString()中編寫更多的輸出內容,如:以下代碼:
class Person{

         private String name ;

         private int age ;

         public Person(String name,int age){

                   this.name = name ;

                   this.age = age ;

         }

         public String toString(){

                   return "姓名:"+this.name+",年齡:"+this.age ;

         }

};

public class Demo13{

         public static void main(String artgs[]){

                   Person p = new Person("張三",30) ;

                   System.out.println(p) ;

         }

};

2  equals:對象比較

       是對象比較的方法,StringObject的子類,所以Strin本身已經根據自己的情況覆寫好了equals方法了。
       之前講解過?如何區分兩個對象是否一樣?實際上這樣的方法,應該寫在equals之中。
class Person{

         private String name ;

         private int age ;

         public Person(String name,int age){

                   this.name = name ;

                   this.age = age ;

         }

         public boolean equals(Object obj){

                   if(this==obj){

                            return true ;

                   }

                   if(!(obj instanceof Person)){

                            return false ;

                   }

                   Person p = (Person)obj ;

                   if(this.name.equals(p.name)&&this.age==p.age){

                            return true ;

                   }else{

                            return false ;

                   }

         }

         public String toString(){

                   return "姓名:"+this.name+",年齡:"+this.age ;

         }

};

public class Demo14{

         public static void main(String artgs[]){

                   Person p1 = new Person("張三",30) ;

                   Person p2 = new Person("張三",30) ;

                   System.out.println(p1.equals(p2)) ;

         }

};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章