天天看点

Object类

       Object类是所有类的父类,如果一个类没有明确的继承自另外一个类,则肯定继承Object类。

class Demo{}

等价于以下的代码:

       class Demo extends Object{}

       那么既然Object类是所有类的父类,那么就意味着,所有类的对象都可以使用Object接收。

       那么在开发中,如果要想编写一个完整的类,应该最少覆写Object类中的以下几个方法:

              · <b>toString</b>:public Sting toString(),对象打印的时候默认调用

              · <b>equals</b>:public boolean equals(Object obj),对象比较

              · <b>hashCode</b>:public int hashCode()

<b>1</b><b>、 toString()</b><b>方法是在对象打印的时候默认调用的</b>

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()方法:

         public String toString(){

                   return "HELLO WORLD!!!" ;

       则打印结果为:

HELLO WORLD!!!

       实际上可以在toString()中编写更多的输出内容,如:以下代码:

         private String name ;

         private int age ;

         public Person(String name,int age){

                   this.name = name ;

                   this.age = age ;

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

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

<b>2</b><b>、  equals</b><b>:对象比较</b>

       是对象比较的方法,String是Object的子类,所以Strin本身已经根据自己的情况覆写好了equals方法了。

       之前讲解过?如何区分两个对象是否一样?实际上这样的方法,应该写在equals之中。

         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)&amp;&amp;this.age==p.age){

                   }else{

public class Demo14{

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

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

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

本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/96926,如需转载请自行联系原作者

上一篇: Java EE
下一篇: 对象多态性