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

  • 相关阅读:
    CentOS重置Mysql密码
    2017年2月21日20:35:46
    UEFI+GPT安装windows
    CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
    CentOS利用nginx和php-fpm搭建owncloud私有云
    Docker安装CentOS
    CoreOS和Docker入门
    Docker命令学习
    CentOS安装Redis详细教程
    Redis的三种启动方式
  • 原文地址:https://www.cnblogs.com/sunNoI/p/8979098.html
Copyright © 2011-2022 走看看