当前位置:课程学习>>第二章 基本语法>>文本学习>>知识点三
一.类型转换
1.自动类型转换
在Java中,各种数据类型如整型、浮点型、字符型数据常常混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级进行,这就是自动类型转换,由Java运行环境自行转换,不需要用户干涉。具体的转换规则见表2.2:
表2.2 自动类型转换的转换规则
字符型char向整型int转换时是转换为该字符对应的Unicode码。对于byte,short,char三种类型而言,不能相互自动转换,可以使用下述的强制类型转换。
【例2.3】数据类型的自动转换。
程序的运行结果为:
35.0
106
661
-95.804
2.强制类型转换
若要从高级到低级进行转换,则需要进行强制类型转换,格式为:(新的数据类型)变量名。如int a;byte b=(byte)a; 这样就把一个整型变量a转换后赋值给字节型变量b。
由于高级数据类型占用的bit位数多,因此在进行强制类型转换时可能会导致数据溢出或精度下降,建议慎用这种转换。
3.字符串与其它数据类型的转换
Java为每种数据类型都提供了一个相应的封装类,这些封装类都有toString()方法,即将各种数据类型转换为字符串。
同样在每个封装类中都有一个相应的方法parse*()方法可以把字符串转换为对应的数据类型,其中*为对应的数据类型。
【例2.4】数据类型与字符串之间的转换。
程序的运行结果为:
234
23.43
10
3.21
二.变量
在程序中常常需要使用一些变量来存储一些运算需要的数据或者存放运算结果。在使用之前需要声明变量,包括变量的类型、变量名,还可以对它赋予初始值,实际上就是开辟一块内存空间。声明变量的语法格式为: 数据类型 变量名 [=初始值];
同时声明多个相同数据类型的变量可以使用逗号,隔开。
每个变量都有自己的作用范围,也就是作用域,变量仅在它的作用域内有效。一般而言全局变量的作用域最大,在程序的任何地方都可访问和使用;方法体内的变量只作用在该方法体内,大括号括起来的变量也只作用在该大括号内。
【例2.5】变量的声明以及变量的作用域。
编译运行该程序,注意程序的输出结果。去掉第24行的注释符,重新编译运行,看看有什么结果。
程序的运行结果为:
3 ts in main=30
4 ts1.ts=10
1 ts in func=10
2 ts in func=20
5 ts2.ts=40
1 ts in func=40
2 ts in func=20