Object类和包装类

目录

一、Object类

1、所有class类的共同父类

​2、子类继承了Object的所有方法

3、JDK对Object类的扩展

 4、注意Object不能接收8大基本类型

二、包装类

1、包装类的引出

2、JDK中中的包装类

 3、包装类的使用

 4、拆箱和装箱

 三、相关代码


一、Object类

1、所有class类的共同父类

Object类是java中所有类的默认父类,无须使用extends来继承,只要是class声明的类,就都会有共同的父类Object类。(java.lang.Object)

提问:为什么要有Object父类呢?

①因为Object类对所有类的父类,所以就可以使用Object引用来接受所有类型,实现参数最该统一化,java中的所有类型都可以发生向下转型变为Object类型(不包括基本数据类型)。

Object obj1=new Person();

Object obj2=new String();

Object obj3=new Cat();

2、子类继承了Object的所有方法

 子类继承了Object的所有方法

之所以System.out,println(任意数据类型)都可以打印输出值,是因为都默认调用该类型的toString方法,Object中存在toString()

3、JDK对Object类的扩展

Onject不仅可是所有类(class声明)的父类,IDK还对Object做了扩展,Object类可以接收所有数据类型(接口,数组,类)

 4、注意Object不能接收8大基本类型

除了8大基本类型之外,所有类型都可以用Object来接收,所有类型都能使用Object来接收。

基本类型和包装类有关。

二、包装类

1、包装类的引出

包装类就是把8大类型封装到类之中

①为了让Object类可以接收java中的所有内容,就引入包装类,把基本类型的数值封装到类的对象中就产生了包装类

②基本类型的默认值在很多场景下回造成误导

在扣费中,假设当前费用*费率=实际扣款数

如果费率是double类型,默认值就是0.0,就会产生异议,不确定到底是免费(费率为0.0)还是输入错误时默认为0.0

如果使用的是double的包装类Double,默认值就是null,就跟明确的知道是否出错

2、JDK中中的包装类

 3、包装类的使用

以整型为例  int->Integer     Inteher->int

        //int ->Integer
        int val=10;
        Integer a=new Integer(val);
        //此时Object类就可以接收a
        Object obj=a;
        //Ingeter->int
        int ret=a.intValue();
        System.out.println(ret);

 4、拆箱和装箱

装箱:将基本类型的数值保存在包装类对象中

拆箱:将包装类对象中的数值还原为基本类型

 自动拆装箱:经过java编译器的优化,使用包装类就和使用基本类型一样

 

 注意:包装类比较仍旧使用equals方法比较

 提问:为啥下图第二行又输出true?

 总结:只要是引用类型的比较一律使用equals方法比较就不会出错

 三、相关代码

任枭雄/rocket_class_Grammer - Gitee.co

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值