Java中char型和整型数能相加?

//typeconversion.java
//Java中的类型转换
public class typeconversion
{
public static void main(String[] args)
{
char a=1;
byte b=2;
short c=3;
int d=4;
byte e;
e=(byte)(a+b+c+d); //将"a+b+c+d"的值强制转化为byte型
short f;
f=(short)(a+b+c+d); //将"a+b+c+d"的值强制转化为short型
int g;
g=a+b+c+d; //a,b,c,d 自动转换为int型再计算
float h;
h=a+b+c+d; //a,b,c,d 自动转换为float型再计算
double i;
i=a+b+c+d; //a,b,c,d 自动转换为double型再计算
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
}
}

该段中的这句 e=(byte)(a+b+c+d); 前面char a=1; 那a就是字符型数据,能和b,c,d整型的数相加? 先自动转换一次再相加,再4者之和转化为byte 型?

这个是可以相加的,因为char类型是可以转换为int类型的(计算过程中自定进行转换,不需要强制转换的)。

举例:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-03
++++++++++++++++++++++++++++++++++++++++++++++++++++++

数据类型

基本类型有以下四种:
int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、
float长度数据类型有:单精度(32bits float)、双精度(64bits double)
boolean类型变量的取值有:ture、false
char数据类型有:unicode字符,16位
对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long

转换原则

从低精度向高精度转换
byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换

基本类型向类类型转换

正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换
int b=a.intValue();

类类型向字符串转换

正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量

参考资料:http://lansky07.javaeye.com/blog/283940

本回答被提问者采纳
第2个回答  2009-06-07
每一个char类型的字符都对应ASCII表的一个数字.所以能相加,在相加的时候是向上转型的.小的往大的转.
有一种情况除外就是使用强制转换.
ASCII (American Standard Code for Information Interchange 美国信息交换标准码)
第3个回答  2015-10-18
可以。java中char,short,byte之间和int做加法运算时会自动提升为int类型。
第4个回答  2009-06-07
能啊,char型有对应的unicode编码啊