Java_常用类01_Object类

API的概述:

  (1)应用程序编程接口。

  (2)就是JDK提供给我们的一些提高编程效率的java类。

1.Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。

2.Object类的构造方法有一个,并且是无参构造

  这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造

3.要掌握的方法:

  A: public String toString()

    返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。

    * Integer类下的一个静态方法:

    *  public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串

    * 注意:

    *  直接输出一个对象的名称,其实就是调用该对象的toString()方法。

      这个表示其实是没有意义的,一般子类都会重写该方法(toString()方法)。

      如何重写呢?

        把该类的所有成员变量值组成返回即可。

      重写的最终版方案就是自动生成toString()方法。

      

            class Student {
                private String name;
                private int age;
                // get and set方法省略
                @Override
                public String toString() {
                    return "Student [name=" + name + ", age=" + age + "]";
                }
            //    @Override
            //    public String toString() {
            //        // return super.toString();
            //        return "姓名:" + name + ",年龄:" + age;
            //    }
            }

  B:public boolean equals(Object obj):指示其他某个对象是否与此对象"相等"。

    比较两个对象是否相同。默认情况下,比较的是地址值是否相同。

    而比较地址值是没有意义的,所以,一般子类也会重写该方法。

    如何重写?

      一般都是用来比较对象的成员变量值是否相同

    但是最终还是自动生成。

4.要了解的方法:

  A: public int hashCode() 返回对象的哈希码值。由Object类定义的hashCode方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是Java编程语言不需要这种实现技巧。)请查看API详解。

    

  B: public final Class<?> getClass() 返回此 Object 的运行时类。返回对象的字节码文件对象,反射中我们会详细讲解

    Class类的方法:

      public String getName() 以String的形式返回此Class对象所表示的实体

   

  C: protected void finalize() 用于垃圾回收,在不确定的时间

  D: protected Object clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。

    

5.两个注意问题;

  A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。

  B:面试题

    ==和equals()的区别?

    a:==

      基本类型:比较的是值是否相同

      引用类型:比较的是地址值是否相同

    b:equals()

      只能比较引用类型。默认情况下,比较的是地址值是否相同。

      但是,我们可以根据自己的需要重写该方法。

猜你喜欢

转载自www.cnblogs.com/zhaolanqi/p/9236935.html
今日推荐