我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:澳门银河总站登录网站,澳门银河网站检测7163 > 变换规则 >

java 强制类型转换的规则是什么?

归档日期:11-23       文本归类:变换规则      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等;

  2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;

  3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;

  4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。

  4、reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不同类型之间函数指针的转换)。

  在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。

  在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回。

  一个超类能做的东西,其子类也能做,而一个子类能做的东西超类不一定能做,所以就有这样的规则:

  (2).一个超类的对象如果强制转换成子类的对象将在运行的时候有异常抛出;

  A a=(A)b;//被b引用的对象强制转换为类A的对象,类B的对象具有类A对象的性质,所以可以转换成功

  b=(B)a;//原本是类A的对象,可能不具备类B的性质,这样会在运行的时候产生异常.

  但是强制之前可以通过“instance of”(实例化)来进行判断是否可以强制转换:if(“aaaa” instance of String){//代码模块},这个代码的意思就是说如果“aaaa”可以实例化字符串类型,那么就可以强制转换,这个方法可以减少因类型不匹配和导致的转换类型抛出异常,开发过程还是有一定作用的。

  备注:关于类型转换,只能是在开发过程中逐渐积累,根据实际需要进行转换即可。

本文链接:http://judhitmills.com/bianhuanguize/56.html