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)) ;

         }

};

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