《Java 7程序设计入门经典》一2.13 使用强制类型转换

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.13节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.13 使用强制类型转换

尽管自动类型转换很有用,但是由于它们只能用于兼容类型间扩大范围的转换,它们也不能满足所有的编程需要。对于其他情况,只能运用强制类型转换。强制类型转换(cast)是告诉编译器将一种类型转换为另一种类型。所以,它需要显式类型转换。强制类型转换具有以下一般形式:

(target-type) expression

这里,target-type指定特定表达式转化到何种目标类型。例如,如果想把表达式x/y的类型转换为int类型,可以写成:
image

这里,尽管变量x和y都是double类型的,但是强制类型转换的结果是int类型。x/y两侧的圆括号是必需的。否则,向int类型的强制类型转换只针对变量x而不针对除法的结果。由于从double类型到int类型没有自动类型转换,因此强制类型转换是必需的。
当强制类型转换是缩小范围的转换(narrowing conversion),信息可能会丢失。例如,当从long类型转换为short类型时,如果long类型的值比short类型的范围大,高位就会截去,信息丢失。当把浮点值转换为整数值时,小数部分也会由于截断而丢失。例如,如果将值1.23赋给整数,结果就仅仅是1。小数部分0.23就丢失了。
下面的程序演示需要强制类型转换的类型转换:
image
image

程序输出如下所示:
image

在程序中,将(x/y)强制转换为int类型使小数部分发生截断,信息丢失。接下来,当把值100赋予变量时,由于byte类型可以存储值100,因此没有信息损失。但是,当试图把值257赋予变量b时,由于257超过了byte的最大值,因此信息丢失。最后,当将byte值赋给char类型时,没有信息丢失,但需要强制类型转换。
image

相关文章
|
2月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
125 63
|
1月前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
1月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
60 2
|
2月前
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
241 5
|
2月前
|
设计模式 Java
Java“不能转换的类型”解决
在Java编程中,“不能转换的类型”错误通常出现在尝试将一个对象强制转换为不兼容的类型时。解决此问题的方法包括确保类型间存在继承关系、使用泛型或适当的设计模式来避免不安全的类型转换。
257 7
|
2月前
|
Java
Java 中锁的主要类型
【10月更文挑战第10天】
|
2月前
|
安全 Java
Java“不兼容类型” 错误怎么查找解决
在 Java 中遇到“不兼容类型”错误时,首先理解错误信息,它表明试图将一种类型赋给不兼容的类型。检查代码中类型不匹配的赋值、方法调用参数类型不匹配、表达式类型不兼容及泛型类型不匹配等问题。解决方法包括进行类型转换、修改代码逻辑、检查方法参数和返回类型以及处理泛型类型不匹配。通过这些步骤,可以有效解决“不兼容类型”错误,确保代码类型兼容性良好。
440 9
|
3月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
72 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
2月前
|
Java 程序员 编译器
Java中的异常类型
Java中的异常类型
24 3
|
2月前
|
Java 开发者
Java“类 Y 中的方法 X 不能应用于给定类型”解决
在Java中遇到“类Y中的方法X无法应用于给定类型”的错误时,通常是因为方法调用时的参数类型与定义不符。解决此问题需检查方法签名,确保传递的参数类型正确无误,或使用显式类型转换以匹配方法所需的参数类型。这种错误提示帮助开发者及时修正类型不匹配的问题。
109 1
下一篇
DataWorks