您好、欢迎来到现金彩票网!
当前位置:千旺彩票 > 赋值 >

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

发布时间:2019-06-06 17:26 来源:未知 编辑:admin

  可选中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”可以实例化字符串类型,那么就可以强制转换,这个方法可以减少因类型不匹配和导致的转换类型抛出异常,开发过程还是有一定作用的。

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

  强制转换的规则是小的可以转成大的,但是大的不一定都能转成小的,例如int都可以强转成string,但是string不一定都能转成int,其他类似

  如果下列2个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatic type conversion):

  当以上2个条件都满足时,拓宽转换(widening conversion )发生。例如,int 型的范围比所有byte 型的合法范围大,因此不要求显式强制类型转换语句。对于拓宽转换,数字类型,包括整数(integer )和浮点(floating-point )类型都是彼此兼容的,但是,数字类型和字符类型(char)或布尔类型(bollean )是不兼容的。字符类型(char )和布尔类型(bollean )也是互相不兼容的。

http://csyuntao.net/fuzhi/447.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有