JAVA_包装类

本文深入解析Java包装类,介绍其诞生背景、基本类型及其包装类的关系,探讨为什么要封装,以及包装类的常用属性、构造器、自动装箱拆箱机制。重点讲解Integer类实例,包括历史沿革、构造方法和关键方法如equals和toString。
摘要由CSDN通过智能技术生成

【一】java包装类_引入

【1】什么是包装类:

以前定义变量,经常使用基本数据类型。
对与基本数据类型来说,它就是一个数,加点属性,加点方法,加点构造器。
将基本数据类型对应进行了一个封装,产生了一个新的类,–》包装类。
int 、byte ~ --》基本数据类型。
包装类—》引用数据类型。

【2】基本数据类型对应的包装类:

基本数据类型对应的包装类继承关系
byteByte– 》Number --》Object
shortShort– 》Number --》Object
intInteger– 》Number --》Object
longLong– 》Number --》Object
floatFloat– 》Number --》Object
doubleDouble– 》Number --》Object
charCharacterObject
booleanBooleanObject

【3】已经有基本数据类型了,为什么药封装为包装类?

(1)Java语言 面向对象的语言,最擅长的操作各种各样的类。
(2)以前学习装数据的–》数组,int[ ]、String[ ]、double[ ]、Student[ ]
以后学习的装数据的–》集合,有一个特点,只能装引用数据类型的数据。

【4】是不是有了包装类以后就不用基本数据类型了?

不是。

【二】包装类_常用属性_常用构造器

【1】直接使用,无需导包

Java.lang
类 Integer

【2】类的继承关系

在这里插入图片描述

【3】实现接口

java.lang.Object 
java.lang.Number 
java.lang.Integer

【4】这个类被final修饰,那么这个类不能有子类,不能被继承

在这里插入图片描述

【5】包装类是对基本数据类型的封装:对int类型封装产生了Integer

Integer类包装一个对象中的原始类型int的值。 类型为Integer的对象包含一个单一字段,其类型为int 。

【6】类的历史:

在这里插入图片描述

【7】属性:

 //属性
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        //“物极必反”原理:
        System.out.println(Integer.MAX_VALUE+1);
        System.out.println(Integer.MIN_VALUE-1);

【8】构造器()

(1)int类型作为构造器的参数:

 Integer i1=new Integer(12);

在这里插入图片描述
(2)String类型作为构造器的参数:

 Integer i2=new Integer("12");
 Integer i3=new Integer("adc");

在这里插入图片描述

【9】包装类的特有的机制:自动装箱、自动拆箱:

//自动装箱:int -->Integer
        Integer i=12;
        System.out.println(i);
        //自动拆箱:Integer -->int
        Integer i2=new Integer(12);
        int num=i2;
        System.out.println(i2);

(1)自动装箱 自动拆箱 是从JDK1.5以后新出的特性。
(2)自动装箱 自动拆箱 :将基本数据类型和包装类进行快速的类型转换。
验证:
在这里插入图片描述
可以自己打断点测试是否走入valueOf方法中:
在这里插入图片描述

【10】常用方法:

valueOf方法的底层
在这里插入图片描述

//equals:Integer对Object中的equals方法进行了重写,比较的是底层封装的那个value的值
        //Integer对象是通过new关键字创建的对象
        Integer i3=new Integer(12);
        Integer i4=new Integer(12);
        System.out.println(i3==i4);//false 因为==比较的是两个对象的地址
        System.out.println(i3.equals(i4));

        //Integer对象通过自动装箱来完成
        Integer i5=12;
        Integer i6=12;
        System.out.println(i5.equals(i6));//返回true
        System.out.println(i5==i6);//
        /*
        如果自动装箱的值在-128~127之间比较的就是具体的数值,否之,比较的就是对象的地址
         */
//intValue( ):作用将Integer-->int
        Integer i7=130;
        int i=i7.intValue();
        System.out.println(i);
        
        //parseInt(String s):String-->int:
        int i8=Integer.parseInt("123456");
        System.out.println(i8);
        
        //toString:Integer-->String
        Integer i10=130;
        System.out.println(i10.toString());

参考:马士兵珊珊老师Java基础讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值