Java中的Object类

1.什么是Object类?有哪些常用方法?

  答:1).Object类是所有类的父类,位于java.lang包中。

   2).数组也是Object类的子类。

   3).Object类的常用方法有:

--- toString();

--- equals();

--- hashCode();

---.....

 2.如何使用Object类?举例说明

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

}

}

   3.ObjectObject[]之间有什么区别?

     答:1).方法中的形参是Object类型时,任何类型的参数都可以传进去执行。

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

      例:public static void arrayTest(Object[] obj){

}

public static void main(){

  Int[] array = new int[4];

  arrayTest(array)  //错误出现

}

4.什么是toString方法?举例说明

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

   1):打印对象时直接调用类的toString方法

    public static void main(){

     Student stu1 = new Student();

      stu1.setName(“张三”);

      stu1.setAge(23);

      System.out.println(stu1);

      System.out.println(stu1);

}

打印: Student@152b6651;

2).类本身重写toString方法重写Student类的toString方法后

            public static void main(){

              Student stu1 = new Student();

              stu1.setName(“张三”);

              Stu1.setAge(23);

              System.out.println(stu1);

}

打印:Student:name = 张三,age = 23;

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

}

public String toString(){

  Return “Student:” + “name=” + name + “,age=” + age;

}

}

5.如何使用equals方法和“==”?举例说明

  答:1).equals方法

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

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

       true;

         String str = new String(“123”);

         String str = new String(“123”);

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

     2). “=”

       比较的是内存中的虚地址

         String str = new String(“123”);

         String str = new String(“123”);

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

6.什么是hashCode方法?

      答:获取对象的哈希码值,为16进制

 7.equals方法与hashCode方法之间有什么关系?

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

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

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

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

posted @ 2017-09-22 10:34  Evan789  阅读(24026)  评论(1编辑  收藏  举报