在java中的强制转换和自动转换中,什么是目标类型,什么是源类型?

什么是目标类型,什么是源类型?... 什么是目标类型,什么是源类型? 展开
 我来答
wangda146
2013-07-15 · TA获得超过1160个赞
知道小有建树答主
回答量:836
采纳率:0%
帮助的人:574万
展开全部
目标类型是转换后的类型,源类型是转换前的类型
比如:
int a = 1;

double b = a; 这里是自动转换,因为double 有8个字节的长度 而int只有4个字节的长度,所以可以int可以自动转换成double ,就相当于int是一杯水,而double 是一个桶,一碗水当然可以倒入到桶里面,这里a是源类型 b是目标类型。

而:
double a = 1.0;

int b = (int) a; 这里是强制类型转换,因为不可能把一桶水塞进一个杯子里面,所以要强制类型转换。这里a是源类型 b是目标类型。

一些简单的例子:
float = 1.0; 编译错误,因为1.0是double类型的,所以要强制类型转换

short s = 1;

s = s + 1; 编译错误,因为short只有2个字节,而加上的1是int类型的4个字节,所以要强制类型转换

s = s++; 可以,自加1
追问
你好,请问,这步有问题吧。就是您的 int b = (int) a这里,a已经是int型吧,应该是int a=(int)b吧。我刚学,请指教。跪了。
追答
你可以试一试 int c = a; 看看能不能成功??如果能,那拜服。这个涉及到存储内存。
妥当且坦率的才俊k
2013-07-14 · TA获得超过3825个赞
知道小有建树答主
回答量:1008
采纳率:80%
帮助的人:959万
展开全部

这位童鞋,请看下面的例子:

  int a = 5;

  double b = a;

  int c = (int)b;

在上述代码中,第一步就是声明一个变量a,且将5赋给它;

第二步,定义一个double类型的变量b,且将a的值赋给它,此时完成了自动类型转化,a是源类型,b是目标类型。

第三步,定义了一个int类型变量c,且将b的值赋给它,此时完成了强制类型转化,b是源类型,c是目标类型。

 

可以这样总结,源类型在“=”的右边,而目标类型在“=”的左边。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式