Object类

一、Object类的作用和地位

(一) Object类:

①Object类是所有类的父类,位于java.lang包中;

②数组也是Object类的子类;

③Object类的常用方法

1.toString();

2.equals();

3.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);} }

⑤Object和Object[]之间的区别;

方法中的形参是Object类型时,任何类型的参数都可以传进去执行;

方法中形参是Object[]类型时,只有对象数组可以传入执行;

二、Object类中的常用方法

(一)Object类中的常用方法

①toString方法;

1.toString方法可以将任何一个对象转换成;

2.字符串返回,返回值的生成算法为:getClass().getName() + '@' + Integer.toHexString(hashCode())

②默认情况下,调用父类无参构造方法

③可以在子类构造方法的第一行,使用super关键字调用父类任意一个构造方法

(二)equals方法;

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

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

(三)equals方法和“==”

①equals方法;

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

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

    String str=new String(“123”);

    String str1=new String(“123”);

    System.out.println(str.equals(str1));à打印为true.

②“==”;

比较的是内存中的虚地址

     String str=new String(“123”);

     String str1=new String(“123”);

     System.out.println(str==str1);à打印为false

(四)hashCode方法

①hashCode方法;

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

②equals方法与hashCode方法关系;

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

  1. 如果两个对象equals比较返回false,那么它们的hashCode值不一定不同;

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

4.Set集合部分有实际应用;

 

 

posted @ 2017-10-10 19:39  alone-  阅读(163)  评论(0)    收藏  举报