Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第3章 Java基本程序设计03.pptVIP

Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第3章 Java基本程序设计03.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1.4 数据类型的转换   Java的数据类型在定义时就已经确定了,因此不能随意转换成其他数据类型,但Java允许用户有限度地进行类型转换处理。数据类型的转换方式可分为自动类型转换及强制类型转换两种。   1. 自动类型转换   在程序中已经定义好了数据类型的变量,若要用另一种数据类型表示,则Java会在下列条件皆成立时自动进行数据类型的转换。   (1) 转换前的数据类型与转换后的数据类型兼容。   (2) 转换后的数据类型的表示范围比转换前的大。   值得注意的是,类型的转换只限于该行语句,并不会影响原先所定义的变量的类型,而且通过自动类型转换,可以保证数据的精确度,不会因为转换而损失数据内容。这种类型的转换方式也称为扩大转换。前面曾经提到过,若整数类型为short或byte,为了避免溢出,Java会将表达式中的short和byte类型自动转换成int类型,这样可保证其运算结果的正确性,这也是Java所提供的“扩大转换”功能。字符与整数可使用自动类型转换,整数与浮点数亦是兼容的,但是由于boolean类型只能存放true或false,与整数及字符不兼容,因此不可能进行类型转换。下面的例子给出了当两个数中有一个为浮点数时其运算结果的变化。   2.强制类型转换   当两个整数进行运算时,其运算结果也是整数。例如,当做整数除法8/3的运算时,其结果为整数2,并不是实际的2.6666…,因此在Java中若要得到计算结果为浮点数,就必须将数据类型做强制类型转换。强制类型转换的语法如下:     (欲转换的数据类型) 变量名称;   因为这种强制类型转换是直接编写在程序代码中的,所以也称为显性转换。下面的程序说明了在Java中整数与浮点数是如何转换的。   【例3-12】 TestJava3_12。   当两个整数相除时,小数点以后的数字会被截断,使得运算结果为整数。但由于这并不是预期的计算结果,而想要得到的运算结果为浮点数,因此就必须将两个整数中的一个(或两个)强制转换为浮点数。下面的三种写法都正确。   (1) ?(float)a/b//:将整数a强制转换成浮点数,再与整数b相除。   (2) ?a/(float)b//:将整数b强制转换成浮点数,再以整数a除之。   (3) ?(float)a/(/float)b//:将整数a与b同时强制转换成浮点数,再相除。   只要在变量前面加上欲转换的数据类型,运行时就会自动将此行语句里的变量进行类型转换处理,但这并不影响原先所定义的数据类型。此外,将一个超出该变量可表示范围的值赋值给这个变量称为缩小转换。由于在转换过程中可能会降低数据的精确度,因此Java并不会自动进行这些类型转换,此时就必须进行强制类型转换。 案例1 数据类型转换 【案例描述】   Java语言中的数据类型有多种,不同数据类型之间可以进行转换。 【技术要点】   不同数据类型占用的内存空间大小不一样,因此表示的范围也不一样。各种数据类型是可以相互转换的,有些转换是默认的,有些转换是强制的。如果在计算中没有注意到这些隐式转换,则可能损失数据的精度,影响得出正确的结果。 【代码与注释】   程序名称为TypeTransform.java。 图3-4 程序运行结果 【程序解析】   第7行的正常运算结果是6.5,进行自动类型转换后为6;第9行和10行强制类型转换的结果是不一样的。第11行进行隐式强制类型转换。 【相关知识】   当操作数的类型不同时,经常需要进行强制类型转换,将操作数转化为所需要的类型。强制类型转换有两种形式:显式强制类型转换和隐式强制类型转换。显式强制类型转换需要使用强制类型转换运算符,格式如下:     (type)expression 其中,type为类型描述符,如int、float等;expression为表达式。   经强制类型转换运算符运算后,返回一个具有type类型的数值。   隐式强制类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型后,赋值给赋值符左侧的变量。   字符型数据在计算机中用ASCII码表示。

您可能关注的文档

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档