二、Java面向对象(8)_继承思想——Object类

2018-05-02

一个blx的程序员可不太好。

Object类

 查阅API

基本描述:

  1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;

  2)Object类是所有Java类的祖先(根类)。每个类都使用 Object 作为超(父)类(直接父类或间接父类)。所有对象(包括数组)都实现这个类的方法。可以使用类型为Object的变量指向任意类型的对象。

为什么Object类是所有类的根类?

Object本身指对象,但我们发现所有的对象都具有一些相同的行为,于是就出现成一个Object类,表示对象类,其他类都继承Object类

 

引用数据类型又对象类,包括类、接口、数组

Objec类的常用方法:

  • protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

                即垃圾回收器在回收某一个对象之前,会先调用此方法。

  • Class getClass():返回当前对象的真实类型。
  • int hashCode():  返回该对象的哈希码值。哈希码值决定了对象在哈希码表中的存储位置(内存地址)。
  • boolean equals(Object obj):将当前对象(this)和参数obj做比较

                  a.如果运算符两边的变量都是基本数据类型,那么只要这两个变量的值相等,判断结果返回true。

                  b.如果运算符两边的变量都是引用数据类型,那么只有当这两个变量都指向同一对象(两个变量在内存中的地址相同)判断结果返回true。

                  equals()与==都是比较对象的内存地址。

                  官方建议:每一个类中都应该去覆盖equals()方法,因为我们关心的是数据内容,而不是内存地址。比如:两个字符串,只要内容相同,我们就认为是同一个对象。

  • toString():表示返回该对象的字符串。

          打印对象时,其实就是打印的就是对象的toString方法。

          System.out.println(obj对象); 等价于System.out.println(obj对象.toString());

          默认情况下打印对象打印的是十六进制的哈希码值

          所以官方建议:我们应该覆盖每一个类的toString()方法,去返回我们的数据。

参考:

http://www.cnblogs.com/mengdd/archive/2013/01/03/2842809.html

猜你喜欢

转载自www.cnblogs.com/sunNoI/p/8979098.html