1、第 2 章 JAVA 语言基础首先,观察第 1 章的两个样例程序,了解 JAVA Application 程序的一般特点:P5 例 1-1:这是一个不能再简单的 JAVA 程序public class Hellopublic static void main( )System.out.println(“Hello!“);JAVA 程序开头总是这样,定义一个类class,class 是关键字,Hello 是标识符,代表类名,用户可自定义类名语句块分割符程序从 main()方法开始运行,这一行写法基本是固定的输出,这一行不是 JAVA 语法,而是对类库的一个调用,相当于 C+的 coutQ:cou
2、t 是 C+的关键字吗?P12 2 实验内容,该程序求 110 的和。public class Sum10_for /类名 Sum10_forpublic static void main() int i=1,n=10,s=0; /定义整数类型标识符 I,n,s/System.out.print(“Sun(“+n+“)=“);/输出for (i=1;i等 关系运算符;,=, = 布尔运算符。 和 if (10 = = x) 哪种写法更好?Q5:用运算符写一个表达式,能最有效率的算出 2*8注意 P33 运算符(6)-(13) 逗号运算符,常用于 for 循环,比如 for(i=1, i=100
3、, i+)Q6:var = (235,567); var 为多少? a=(3*5,a*4) ; a 为多少? 2. 运算符的优先级与 C/C+语言基本相同。3. 运算符的结合性(左结合,右结合)与 C/C+语言基本相同。4 表达式(略。 。 。 。 。 。 ) 5 JAVA“简单数据类型”的转换(补充教材)这一小节是对教材 P35“5 类型兼容原则”的另一种讲述方法。教材这一部分介绍了 JAVA 作为强类型语言,常见的数据类型转换规则,但是写得比较难理解,我做一个通俗点的介绍。JAVA 作为强类型语言,数据类型转换规则相当烦杂枯燥,这里先不做全面介绍,只介绍初学者编程常见的 “简单数据类型”转
4、换方式。前面介绍的 Java 整型、浮点型、字符型被视为简单数据类型,这些类型由低级到高级分别为:(byte, short,char)-int-long-float-double当从低级到高级转换时,我们叫“赋值相容” ,这种转换是隐式的(或叫自动的) ,不需要特别处理,比如以下转换是合法的:-short x=100;int i=x;long l=i;float f=l;double d=f;-下面的例子,字符型转为整型也是合法的,自符型会转换为对应 ASCII 码值,例如-char a=c; int i=a; System.out.println(i);-输出: 99; (99 是 c 的
5、ASCII 码值)对于平级 (byte,short,char 是平级的) 和高级到低级的转换,是“赋值不相容” ,这种转换是显式的(或叫非自动的、强制的类型转换) ,被转换的数据前面必需加一个(类型说明) 。例如:对于 byte,short,char 三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。-short i=99;char a=(char)i; /()为强制类型转换符System.out.println(c);-输出:c; (99 是 c 的 ASCII 码值)下面是一个从高级到低级,必需使用强制类型转换的例子:-double x=99;int i=(in
6、t)x;byte b=(byte)i;char c=(char)i;-可以想象,这种转换可能会导致数据溢出,要特别小心。看这个程序public class Digsum3public static void main(String args)double x=99;int i=(int)x;byte b=(byte)i;System.out.println(b);运行结果是:99如果把 x 改为 99999 呢?运行结果是: -97b 为什么变成-97 呢?因为 b 的类型是 byte,只有 8 位,数据表示范围是-127 128,当遇到 99999 时,b 溢出了,变成一个莫名其妙的-97。
7、从这个例子我们看出数据类型转换的危险性,本例这种情况编译器不给你报错,因为代码完全符合语法要求。这需要程序员认真测试:将 x 的值从最小到最大都测一遍。再看这个例子:public class Digsum3public static void main(String args)double x=127;byte b=(byte)x;b+; System.out.println(b);我们希望 b 为 128,但程序的输出却是-128。这种情况编译器不给你报错,因为代码完全符合语法要求。需要程序员认真测试。从上面两个例子看出:数据类型转换多么容易出错,即便强类型的语言也不能避免。在实际工作中,如过出现这种错误,可能会造成严重问题。Q7:对上面的两个例子,我们应该怎样测试程序才能确保不出现类型转换错误?