Java学习笔记——day07_Object类

目录

  • API
  • Object类

1. API

  • API(Application Programming Interface):应用程序接口
  • Java API是Java提供给我们使用的类,我们只需要学习里面封装功能,灵活取用,完成业务功能;
  • Java API的两个最基本的包:
    • 语言包(java.lang)
    • 实用包(java.util)

2.Object类

2.1 Object类概述

Object类是顶层父类,所有的类,都是直接或者间接的继承它;

2.2 Object类适用场景

任何情况,任何引用类型都可以直接调用Object类中的方法;

2.3 Object类中部分方法

2.3.1 hashCode()方法
  • 返回该对象的哈希码值。默认情况下,会根据对象的地址来计算;但是不能说是地址值,只能保证相同类的不同实例返回的值是不同的;
  • 格式:public int hashCode();
2.3.2 getClass()方法
  • 获取类的类对象;
  • 可以通过class类中的一个方法,获取对象的真是类的全名称;
//返回的是一个类对象(Class 对象);
//jvm在类加载时,会为每个类生成一个Class<A>的Class对象在Java堆中,
//每个A类型的实例都要通过这个Class对象来进行实例化,所以这个Class对象
//是唯一的,且只有第一次加载的时候才会生成;
public final Class<?> getClass();
2.3.3 toString()方法
  • 默认返回className+@+hashCode的十六进制形式
  • 由于默认情况下的数据对我们来说没有意义,所以一般建议重写该方法;一般重写是将该类的所有的成员变量组成返回即可;
public String toString(){
    return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
2.3.4 equals()方法

先提及 == 符号;

  • == 符号的功能

    • 对于基本类型:比较的是值;
    • 对于引用类型:比较的是地址;
  • == 符号的优点

    • 不会抛出NullPointerException;
    • 在编译器检测类型兼容性;
    • 速度很快;
  • == 符号的使用场景

    • 比较基本类型时;
    • 可以直接比较地址的情况;
  • equals概述:

    • equals() 是 Object类的方法,只能比较引用数据类型,比较的是两个对象的地址值是否相同;

    • 默认equals比较的是两个对象的地址值,比较意义不大,所以需要重写;

      • 不需要重写equals的情况;
        • 类的每个实例本质上是唯一的;(不理解)
        • 类是私有的,可以确定它的equals()方法永远不会被调用;
        • 不需要进行类之间的比较;
      • 需要重写equals的情况:
        • 想自定义对象比较的逻辑时,而不是地址;
        • 一般重写的时候,都是选择使用集成环境自动生成,然后在进行微调;
    • 优缺点

      • 优点:

        • 可以自定义逻辑,比较灵活;

        • 提高效率;

        • 提高健壮性(instanceof);

          • instanceof:判断一个对象是不是该类型的一个引用;

            obj instanceof student;

      • 缺点:当调用对象为null时,会抛出NullPointerException异常;

2.3.5 clone()方法
  • 目的:快速创建一个已有对象的副本;
  • 分类:
    • 浅克隆:只克隆地址值,不克隆空间;
    • 深克隆:地址值和空间均克隆;
  • 使用:clone()是一个受保护的方法,为了使用clone方法,类必须实现继承标记接口Cloneable,子类重写的方法是改修饰符protected为public,重写逻辑还是用父类的;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值