zoukankan      html  css  js  c++  java
  • 二、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

  • 相关阅读:
    雅虎天气接口
    解决activeandroid no such table
    解决Genymotion Error: “Unable to load VirtualBox Engine” on Yosemite. VirtualBox installed
    存金宝 价格提示
    添加 SSH 公钥
    ImportError: No module named flask.ext.wtf 解决方法
    Cannot fetch index base URL https://pypi.python.org/pypi/ 解决方法
    mac下只遍历目录不遍历文件
    dubbo源代码编译打包错误解决
    maven 基本配置
  • 原文地址:https://www.cnblogs.com/sunNoI/p/8979098.html
Copyright © 2011-2022 走看看