Object类

Object

 

·Object类是所有类的父类,位于javaLang包中;

 

·数组也是Object类的子类;

 

·Object类的常用方法

toString(  );

equals(  );

hashCode(  );

......

 

·Object类在java.lang包下,是所有类的根。任何类的对象,都可以调用Object类中的方法,包括数组对象。

例如:

  public class Example{

    public void f(Object obj){

      }    

    }

    public class Test{

      public static void main(){

         Example exam=new Example();

         int[] array=new int[4];

         ……//任何数组

         exam.f(array);

    }

    }

 

·ObjectObject[ ]之间的区别

—方法中的形参是Object类型时,任何类型的参数都可以传进去执行;
—方法中的形参是Object[ ]时,只有对象数组可以传入执行。

例如:

例:

public  static void arrayTest(Object[] obj){

}    

public static  void main(){

   int[] array=new  int[4];

   arrayTest(array)         //错误

}

 

 

Object类中的常用方法

·toString方法;

toString方法可以将热播和一个对象转换成字符串返回,返回值的生成算法为:getClass(  ).getName(  ) + ‘@’ + Integer.toHexString( hashCode( ) );

 

·equals方法;

Object类中的equals方法,用来比较两个引用的虚地址。当且仅当两个引用在物理上是同一个对象时,返回值为true,否则将返回false

任何类可以根据实际需要,覆盖toStringequals方法,实现自定义的逻辑。

 

·toString方法的重写

 

public class Student {

    private String name = "123";// 学生姓名

    private int age;// 年龄

    public String getName() {

       return name;

    }

   public void setName(String name) {

    this.name = name;

    }

   public int getAge() {

      return age;

    }

    public void setAge(int age) {

       this.age = age;

    }

   //重写toString方法

}

 

 

 

 

 

 

 

equals方法和“= =

·equals方法

比较对象的虚地址,但是可以在类中被重写。

例如:String类重写了,两个值相同的String对象相比较为true

 

 

String  str  =  new  String( “123” );

String  str1  =  new  String( “123” );

System.out.println( str.equals( str1 ) );

·“= =

比较的是内存中的虚地址

String  str  =  new  String( “123” );

String  str1  =  new  String( “123” );

System.out.println( str  = =  str1 );

 

hashCode方法

·hashCode方法

—获取对象的哈希码值,为16进制;

 

·equals方法与hashCode方法的关系

—如果两个对象使用equals比较返回true,那么它们的hashCode值一定要相同;

 

—如果两个对象equals比较返回false,那么它们

hashCode值不一定不同;

 

—覆盖equals,往往需要覆盖hashCode,可以使用eclipse自动生成,保证equals返回true,则hashCode相同;equals返回false,则hashCode不同;

 

—在Set集合部分有实际应用。

posted on 2017-09-21 19:37  Tunechi  阅读(163)  评论(0编辑  收藏  举报