00:00
好,那接着这两个功能的话呢,在咱们开发当中呢,经常会出现啊,那会儿呢也提到了,比如说像上下边这个,我们呢,假设现在有一个这样的方法public word,我这呢就随便写个方法叫method,这个方法的行参呢是一个object类型的。那么我们真正在调这个方法的时候,咱们呢,可以传object类型的这个子类的对象,这是咱们就所说的这个所说的这个叫多态性了,但是现在的话呢,Public。TEST3一下,现在的话呢,我们内存当中,比如说你就是一个int型的一个number,这个呢是个十,此时的话呢,我们要调这个method方法,先把这个NUMBER1放进去,是不是按说是不可以的呀。因为人家是个基本数据类型,你想放在这儿是不是不行啊对,所以呢,我们就必须呢,是不是得先把这个基本数据类型先得给它转化成对应的包装类的对象,那你的这个int就转化成是一个了。
01:03
那呢,继承于object,继承于这个间接的继承于object了,我就可以多态的方式呢往里去放了,这就是我们讲这样的一个情境,反过来呢,刚才也说到了,你想让一个包装类的一个对象去做加减乘除,不切实际对象呢,都不可能加减乘除的,那我们就需要把它转化为基本书类型,这两个操作的话呢,很常用很常用,那我们就必须呢,去记住这个方法和这样的一个包装类。啊,就得记住这两个你才可以用,那后来呢,我们有了一个新特性,哎,我们这呢,就来说一下这个新特性的问题,就是在我们这个JDK5.0的时候呢,加入了一个新特性。这个新特性呢,叫做自动装箱与拆箱,自动装箱与自动拆箱什么意思,按正常来讲的话呢,我这个NUMBER1我是不可以放到method当中的,但是呢,大家你放进去发现诶也没事儿。
02:04
既然成了这里边的话呢,我们比如说我做一个输出一下这个OB,接一下调一下这个方法,还真把这个number in给输出了。确实没问题,怎么解释这个事儿,这呢,并不是说并不是说什么呢,我们把一个这个obj哈。并不是说呢,我们就把这个NUMBER1,一个int型的一个变量说付给一个object了,这是不对的,Int类型和object类型它俩没有任何关系。没有这种子分类的关系,这要注意,但为什么又行呢?是因为这里边呢,实际上隐含了一个知识点,这个知识点那我们这个把这个呢,我们就先住掉了啊,这个呢,我们就把这个呢也先关掉,来说一下这个事儿叫自动装箱和自动拆箱,就非常的方便了。
03:00
什么叫自动装箱?很简单,我这呢定义一个变量,我叫NUMBER20,我这呢定一个我这呢叫N1,正常来讲的话呢,我们需要拗一下,把这个NUMBER2呢放到行参才可以,但事实上呢,你发现我们把这个NUMBER2呢直接放到这就可以了。这就感觉很奇怪了,说一个int型的一个变量怎么可以直接付给一个类呢?一个类的一个变量了,这呢确实就可以了,我们把这个事儿呢,就叫做自动装箱,那有了自动装箱以后呢,我们就可以替代原来呢,我们用包装类这个构造器的这个事儿了,就用不着我们再去new了,那直接大家这样写就可以了,其他的类型也一样,我这呢,一个布尔型的B1是一个触,我定一个包装类类型的B2,直接呢把把B1呢付过来。就可以,这就叫做自动装箱。这这不就很方便吗?这大家看到以后一点都不兴奋啊,原来还得这个扭构造器,现在是不是直接就这样写就行了,很方便,你感觉很顺滑是吧?嗯,那有了自动装箱呢,它的一个逆过程要自动拆箱,一个要装,装的话呢,相当于它实现的是基本数据类型,到我们这个包装类,这叫装箱,给它装起来了,那拆箱呢,就是把它再拆出来,露出本质上的这个基本数据类型。
04:37
现在就是包装类呢,转化为基本数据类型,好你看上边啊,上面咱们这个IN1它呢是一个对象,所以呢我呢N1你去点的时候呢,这一定是可以点出来它这个方法的,但现在的话呢,我想把这个N呢再转换为一个基本数据类型,我就我就呢直接声明一个叫NUMBER3。搞定了,直接呢,把一个包装类的对象就复位一个基本数据类型了,这呢就叫做自动拆箱,看着是不是感觉很爽。
05:11
是吧,很方便哈,直接呢我们就这样写就可以了,那么在5.0之前的话呢,大家如果说你想把基本数据类型转化成包装类,那你就去new通过过道器了,这个事儿的话呢,呃,反过来这个事儿的话呢,你就得是调那个叉叉叉Y6了,那现在呢,5.0以后,而且现在大家用的GDK肯定在公司当中都是5.0以后的这个版本了,所以大家呢,就直接呢使用自动装箱,自动拆箱就可以了。啊,就非常的方便,行正常就我们说的这样一个新特性。
我来说两句