一、API概述
* A:API(Application Programming Interface)
* 应用程序编程接口
* B:Java API
* 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,**API就是只JAVA中提供给我们的具体的类**
* 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。
二、Object类的概述
* A:Object类概述
* 类层次结构的根类
* 所有类都直接或者间接的继承自该类
* B:构造方法
* public Object()
* 子类的构造方法默认访问的是父类的无参构造方法,若没有特意指明,就是访问Object类的无参构造。
三、Object类的方法
1.hasCode()
* public int hashCode()
* a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
* b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
2.getClass()
* public final Class getClass()
* a:返回此 Object 的运行时类。
* b:可以通过Class类中的一个方法,获取对象的真实类的全名称。public String getName()
**getClass()方法返回的是该类的字节码文件对象,Class类也是一个类,是描述类的类。就好像Person类是描述人一样。
Class clazz = person.getClass();
上面的方法就是获取person这个类的字节码文件对象,Class类中可以描述类的属性和行为,有相应的变量及方法。上述具体来说clazz对象就是描述Person类这个类的属性和行为的对象。
比如可以通过clazz.getName()这个方法获取得到这个字节码文件的对象的类的名称等等。**
3.Object类的toString()方法
返回的是调用者的地址值,一般来说无意义,所以我们需要用到的类,可以重写这个方法,获取我们想看到的属性。
4.Object类的equals()方法
Object中的equals方法内部也是用==号来进行比较的,比较的是this == obj,调用对象和比较对象的地址值,一般来说无意义,所以我们用到的时候一般要对该方法进行重写。
四、==号和equals的区别
* ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值,所以一般直接用来比较基本数据类型,因为直接用==号来比较引用数据类型比较的是地址值,无意义。
* equals方法是一个方法,只能由对象来调用,所以无法比较基本数据类型,只能比较引用数据类型。所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性。