00:00
大家好,我是海波老师,我们现在呢,来讲一下数据类型之间的一个转换的问题,我们这里呢,把这个代码呢,我们拷贝一个新的,我们改成二,我们点击OK,然后呢,把里面的内容呢,我们给它删掉,然后把这个改一下,咱们叫数据类型的转换。好,首先呢,我们先声明两个变量,它的类型不一样,一个叫名称name,它等于张三,这是一个字符串类型,还有一个呢,是一个整形,咱们叫年龄H,它等于30,我们现在呢,就声明了我们的两个变量,前面咱们讲过啊,变量在声明的时候,数据类型是必须要明确的,一旦确定好之后,在执行的时候,这个变量就无法指向其他类型的数据了,我们这里的name呢,它只能指向字符串数据,它不能指向其他的,所以我们的name呢,如果把它变成一个理四,它也是个字符串,这个是没有任何问题的。但是呢,如果你把这个name呢,它等于年龄,这个整形数据它是不被允许的啊,因为我们的idea在编译检查的时候会有提示,鼠标放上去,它会告诉你我们需要的是一个字符串,但是你提供的是一个整形,所以就发生了错误,所以这样的语法是不被允许的,所以呢,我们数据类型的转换呀,就存在这样的问题,需要大家注意一下,但是Java中的基本数据类型是比较特殊的,因为基本数据类型啊,它有数值类型的概念,而数值类型呢,它里面的数据啊是有一个取值范围的概念的,那么咱们的数值范围小的可以自动的转换为大的数据类型,那么这个转换的过程是由Java在编译的时候自动完成的,那么也就意味着我们把小的给大的,没问题,但是反过来就不行了,咱把大的类型呢,转换成小的是不被允许的,这个其实也好理解,对吧?同学们,我们把一个小的箱子里面的东西,我们放在一个更大的一个箱子里面,肯定不会出任何问题嘛,但是反过来你把一个大的箱子里面的东西,我们给它放到小的箱子里面,可能放不下。
01:53
对不对?哎,这就是一个基本的理论,那么现在呢,我们就来演示一下我们的Java当中,我们的这个数值类型啊,它的取值范围咱们先写个最小的叫bite,然后呢,比它大的呢,就是short,以此类推,我们的int,还有long,我们的浮点类型要比我们的整数类型它的范围要大,所以我们的float后面是我们的double,诶,就是这样。好了,咱们来写上一下,首先我们的第一个叫做bit,我们等于十,接下来我们再写上一个short,我们写个S,这个时候呢,我们把bit类型我们给它,你会发现把一个小的数据类型给一个范围大的数据类型,这个是没有任何问题的,那么以此类推,我们写上一个int,给个I,我们再等于S,其实也是没有问题的。好,接下来我们写上一个long,我们再写上一个,它等于一个I,这都是对的。我们之前说过了,我们的浮点类型要比整数类型的取值范围要大,所以我们写上叫float,我们的F,它等于我们的浪没有问题,那么我们的双精度要比单精度的范围要大。
02:53
所以我们的double。它D等于F,这是完全可以的,所以从小到大这是允许的,是由我们Java自动完成这个转换过程的,但是我们说过了,反过来是不允许的,所以我们说一下咱们Java中,我们的范围小的数据,它可以直接转换围范围大的数据,但是我们范围大的数据它无法转换为无法直接。
03:23
转换为我们范围。小的数据,好了,那我们试一试啊,咱把这个我们的int,咱们叫I1,它等于D,你会发现这么写是不允许的,因为我们的D是我的double double类型,它的范围要比int类型范围要大,把大的给小的是不行的,不管是我们的范围大还是范围小,你们都是数值呀,所以数值之间按理说都应该可以进行转换,只不过范围大的数据是无法直接转换为范围小的,但是你可以间接的转换一下,这里的间接怎么做呢?很简单,你强制的给它加个括号,然后写上一个int就可以了,什么意思呀?就是说我明确的告诉你,我就想把一个浮点类型的数据,把它变成整形。
04:10
多余的内容我不要,就好比我们把一个大的箱子里面的东西,我们放在一个小的箱子里面,多出来的东西我们都扔掉,我们不要了,就是这个意思啊,所以这个小括号呢,就是一种强制的转换,那么我们说一下来,如果想要将我们的范围大的数据啊,转换为我们范围小的数据,那么我们需要使用小括号。进行我们的强制转换,所以啊,咱们这个小括号呢,它的含义就是强制转换,把那些多余的东西给它去掉就行了,好,这个就是我们数据类型的转换问题。
我来说两句