00:00
行,那单元测试完了以后,我们来看一下这个包装类的使用,并且呢,咱们在这个包装类使用的测试当中,咱们用一下单元测试,首先我们先来了解一下什么是包装类。包装类英文呢叫rapper,也可以翻译成叫封装类,不止一个,有好多个,一看这个表格呢就知道了,右边这几个呢,都是包装类。看到以后呢,发现诶有点眼熟,猛一看以为是基本数据类型,而且还有八种,实际呢,再一细看,发现又不是因为基本数据类型呢,这些都是关键字了。都是小写,那我们这个呢,一看这个格式是不是就像是个类啊,哎,它确实是个类,那么这几个类的话呢,跟我们这个基本数据类型呢,长得又很像,这是什么关系呢?至少呢,是有一个一一对应关系,对吧,左边一个呢,对应右边一个,那这到底是要干什么呢?这呢我们就得提一提了。
01:06
提提这样的一个历史,什么历史呢?大家想我们呢,一开始讲Java的时候呢,先来讲的叫基本数据类型,哎,我们定义一些常用的整形啊,浮垫型啊,波尔型,叉型,这呢都是我们平时呢比较常用的,用来表示大家的,比如说日常生活当中的这个身高啊,体重啊,真假啊,字符,生活中的一些问题,然后呢,咱们后边呢,讲到这个面向对象的时候,咱们开始引入了引用数据类型,主要呢开始讲这个类。说面向对象,主要呢,体现的就是这个类的概念。接着呢,由这个类呢,咱们去给他拗对象,后边呢,咱们有讲过,说面向对象的三大特征,封装,继承,多肽等等,讲了大量的这个这个信息,包括呢,我们说这个这个类的话呢,咱们可以提供丰富的这个方法,方法呢又可以重载,又可以重写,讲了很多的内容,讲了很多的内容以后呢,翻回来去看这个基本数据类型呢,就会发现呢,很单薄。
02:11
就是咱们讲面向对象呢,都是基于这个这个这个类来提的,而且类这块呢,有个大的一个继承术,所以上面呢是这个object,然后一点点往下展,这里边儿呢,我们又讲了很多这个细节的问题,包括三大特征都提了,然后呢马上发现呢,说你这是类,你在这一波我们这块呢,叫基本数据类型,跟你没啥关系。这个基本数据类型,这个int呢,你知道啊,这个int跟咱们这个object它俩可是一点关系也没有的,人家是个类,你呢是一个基本数据类型,我这定一个变量I,这个I呢,你想点也点不出来东西,只有对象才可以点东西。我们这块呢,好不容易把这个面向对象呢,设计的这么丰富,功能呢也很强大,结果翻回来一发现呢,基本数据类型给凉凉了。对吧,就很惨啊,所以说呢,我们说Java呢,这个面向对象这块的话呢,如果说把它形容成是个人的话呢,目前这个情况呢,相当于还是个残疾人,就不完整是吧。
03:11
就是你这个基本数据类型没有很好的让它体现面向对象的思想,什么继承啊,方法呀都没有,他都啥也用不了,只是一个基本的一个变量,那么这个时候呢,我们就想把这个残疾人呢,给他治好是吧?哎,让这个基本数据类型的变量呢,也让他具有类的特征,你也有这个副类,你也有方法可以调,那这时候呢,我们就想把这个基本数类型给它封装起来。把这个变量呢,你看这你你目前呢,就是一个普通的变量,我呢把你定义到一个类当中。这个类呢,像这个in呢,咱们这个类呢,就叫做inte类啊,Inte这个类,这个类里边呢,有一个属性叫int型的I。就是因对性的I,相当于就是把我们这个基本数据类型的一个变量呢,给它封装在一个对象,呃,封装在一个类当中了,那么我们这个类呢,它最核心的内容还是你这个I还是这个I,只是呢,我们现在呢,有了一个类了,那既然你是个类了,那就算是面向对象这个体系里了,那你呢,就有方法可以去掉了,你也可以体现封装技能多肽了,整个呢,我面向对象呢,就相当于把它们呢,就也给它包进来了,哎,就回到这个体面这个体系里边了,这个时候呢,我们才可以说Java的面向对象才是一个纯粹的面向对象啊。
04:35
能理解这个过程吧?诶,就是我们希望Java中的这个基本数据类型的变量,也让它具有类的一些特征和它的一些这个功能,所以说呢,我们给每一种基本数据类型呢,对应着生成了一种叫包装类,其实呢很形象,就是把它们呢包了一下,比如说呢,你看我们这个integer ctrl c一下,咱们自然呢可以来这看一下源码,CL shift t CR v,这呢就是integer,在这个integer当中,我们会看到它有一个。
05:07
变量在这找呢,还不好找,这样你看有个value是吧,这个value实际上就是咱们那个基本数据类型那个value,呃,Int型的一个变量,我们呢,就是拿这个类呢,把你包了一下,包完以后的话呢,我还可以提供很丰富的功能啊,这不是都具有这个类的一个特征了,而且呢,这个类你会发现呢,它还有这个副类啊,副类呢就叫做number啊,其他的类呢,也是同样的道理。这个时候呢,我们这个基本数列型就不这么单薄了。不这么单薄了,而且使用上呢也更加的方便,什么叫方便呢?大家想咱们呢,这是讲的是object object里边有个方法是不是叫ES啊?这是一个依会方法,这呢是一个类型,咱们说了任何类的对象都可以往这扔,因为呢有多肽,但是你这时候想一想,In特型那个I能扔吗。
06:04
扔不了啊,多态式挺好,我们把这个参数生命证我不站了,说只要是个类的对象都可以扔,多态性特别好使,但是呢,你把这个基本数据类型的变量给排除在外了,因为它跟这个object没有任何关系,但是我现在把你封装成一个integer了,然后呢,我造一个inte的对象,本质上呢,它表示的也是个in型的数,但是因为我是一个类了,我造的是个对象了,我是不是就此时可以往这扔了,那这个时候呢,我们这个方法是不是仍然体现为就是比较通用懒调。哎,就是这样的意思,行,这就咱们说的这个叫封装类或者包装类的一个由来。啊,那举这个稍微形象点一个例子呢,就是还是又说到这个圣斗士是吧。这个圣斗士里边呢,你看那个星矢看过吧,没有没有,那就想象一下是吧,这个星矢的话呢,它是一个青铜,这个这个圣斗士就是比较低的一个level的啊,但是他一般也打不死他啊,就是当他这个每次快挂的时候呢,这时候那个天马座的那个圣衣,不是天马座的那个射手座吧,对射手座的那个圣衣呢,就就飞过来了,然后他就立马穿上,穿上以后的话呢,就牛逼的不行了,是吧?啊就是你可以理解成就是它本身呢就很菜,然后就相当于是一个基本数据类型一样,然后呢,哎,我让他穿上一个射手座的生意以后呢,相当于给他包装了一下,一包装,这时候呢,它这个功能就很强大了,就相当于呢,具备了像我们这个包装类的一个特征,一样里边呢,就可以定义丰富的方法啊,你可以这样稍微形象点去理解啊。
07:41
行,那么我们下边呢,就具体的来看一下基本数据类型和它对应的包装类,这个呢,你得能够记得住。哎,能够记得住在这里边儿呢,我用颜色呢,也标识出来了,有两个特别的。这个对integer和我们这里边这个character,除了这两个之外,剩下的这些都是呢,把首字母呢,小写变成大写,就是你对应的包装类。
08:10
这个呢,我们in用的还比较多,那的话你也得记住它,然后char它的一个全称叫character,这呢是你对应的这个包装类的字符啊,就是这样子的,这是我们说的第一个信息,大家需要记住基本数据类型对应的包装类,第二个呢,我这儿呢画了一个虚框,虚框呢能够体现的内容就是像这些呢,都算是竖直型的。那这个数值型的话呢,它们共同的有一个负类叫做number类,就是继承,呃,就是用来表示这个数的这样一个情况的,那我们刚才在这个源码这块呢,这不也能看到吗?你在这CTRLT一下,它呢集成1NUMBER number呢集成object,你换成ctrl shift t,我再换成一个叫double。
09:02
Double这个double它呢,也继承1NUMBER加上CTRLT这样的。就是我们这里边的几个数值型的呢,他们都是继承于number的,这个事儿知道就可以了,好这呢先是我们关于这个包装类的一个整体上的说明。
我来说两句