强制类型转换

       在许多基本类型转换中,目标可以保存比源更大的值,因此转换起来很容易。通常可以将byte或char用作是int、将int用作long或float,将任何数字类型用作double。在大多数情况下,由于更大的数据类型的精确度比小类型高,所以不会导致信息丢失。一种例外情况是将整数转换为浮点数;将int或long转换为float或将long转换为double时,都可能导致精度降低。
       字符可以被用作int,因为每个字符都有相应的数字编码,它表示该字符在字符集中位置。如果变量i的值为65,则强制类型转换(char)i的结果为字符A,在ASCⅡ字符集中,A对应的数字编码是65。这种字符集是Java支持的字符的一部分。
       将大类型值转换为小类型值时,必须显式地进行强制类型转换,否则将导致精确度降低。显示强制类型转换的格式如下:(typename)value。
       类的实例也可被转换为其他类的实例,但有限制:源和目标类必须有继承关系,即其中一个必须是另一个的子类。
       与将基本类型转换为更大的类型相似,有些对象无需被显式地转换。具体地说,由于子类包含了超类的所有信息,因此可以在任何期望超类的地方使用子类的实例。
要在需要子类的地方使用超类对象,必须显式地进行强制类型转换。在转换过程中,不会损失任何信息,而是得到了子类定义的全部方法和变量。要将对象强制转换为另一种类,需要使用与基本类型相同的操作:(classname)object。其中,classname是目标类的名称,object是源对象的引用。注意,强制类型转换将创建一个classname对象的引用;原来的对象继续存在。
除了强制转换为某种类之外,还可以将对象强制转换为接口,但仅当该对象的类或超类之一实现了该接口时才行。将对象强制转换为接口意味着可以调用该接口的方法,即使该对象的类并没有实现这个接口。
在任何情况下,不能将对象强制转换为基本数据类型或将基本数据类型强制转换为对象。在Java中,基本类型和对象是完全不同的东西,不能自动在两者之间强制转换或互换。
在程序中,常常需要将字符串转换为数字类型,如整数类型。需要int结果时,可以使用Integer类的类方法parseInt()来实现,如下:
       Sting pennsylvania=”5”;
       int penn=Integer.parseInt(pennsylvania);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值