第四课:变量、关键字、类型及程序中逻辑控制内容摘要:

(续 ) 示例 : public void doComputation() { int x = (int)(() * 100)。 int y。 int z。 if (x 50) { y = 9。 } z = y + x。 // Possible use before initialization } 6 运算符的优先级 Java支持一元和二元运算符。 一元运算符对单一的操作数起作用,二元运算符对两个操作数起作用。 假如没有运算符优先级规则的限制,下面的表达式可能得出几种不同的结果。 x = 15 + 3 * 2 14 表 41按优先顺序列出了各种运算符。 7 表达式 位运算 Java编程语言支持整数数据类型的位运算,它们的运算符 ~、 amp。 、 ^和|分别表示位运算的 NOT(为求反)、位 AND、位 XOR和位 OR。 10110000 = ~01001111 00001101 = 00101101 amp。 01001111 01100010 = 00101101 ^ 01001111 01101111 = 00101101 | 01001111 7 表达式 (续一 ) 逻辑运算符 运算符 amp。 amp。 (定义为 AND)和 ||(定义为 OR)执行布尔逻辑表达式。 请看下面的例子: MyDate d = null。 if ((d != null) amp。 amp。 (() 31)) { // do something with d } 注意: int到 boolean不能自动转换。 int i = 1。 if ( i ) //generates a pile error if (i != 0) // Correct 7 表达式 (续二 ) 字符串连接 运算符 + 能够进行 String对象的链接并生成一个新的 String: String salutation = Dr.。 String name = Jack + Arthur。 String title = salutation + name。 最后一行的结果是: Dr. Jack Arthur 如果 +运算符中有一个自变量为 String对象,则其它自变量将被转换成 String。 所有对象都可被自动转换成 String,尽管这样做的结果可能是意义含糊的。 不是串的对象是通过使用 toString() 成员函数而转换成串的等价物的 7 表达式 (续三 ) 右移位运算符 和 Java编程语言提供了两种右移位运算符 运算符 进行算术或符号右移位。 移位的结果是第一个操作数被 2的幂来除,而指数的值是由第二个数给出的。 例如: 128 1 gives 128/2 1 = 64 256 4 gives 256/2 4 = 16 256 4 gives 256/2 4 = 16 逻辑或非符号右移位运算符 主要作用于位图,而不是一个值的算术意义;它总是将零置于最重要的位上。 例如: 1010 ... 2 gives 111010 ... 1010 ... 2 gives 001010 ...在移位的过程中, 运算符使符号位被拷贝。 * 7 表达式 (续四 ) 左移位运算符 () 运算符 执行一个左移位。 移位的结果是:第一个操作数乘以 2的幂,指数的值是由第二个数给出的。 例如: 128 1 gives 128*21 = 256 16 2 gives 16*22 =64 7 表达式 (续五 ) 类型转换 在赋值的信息可能丢失的地方,编译器需要程序员用类型转换( typecast)的方法确认赋值。 例如,它可以 挤压 一个 long值到一个 int变量中。 显式转型做法如下: long bigValue = 99L。 int squashed =( int) ( bigValue)。 在上述程序中,期待的目标类型被放置在圆括号中,并被当作表达式的前缀,该表达式必须被更改。 一般来讲,建议用圆括号将需要转型的全部表达式封闭。 否则,转型操作的优先级可能引起问题。 7 表达式 (续六 )  升级和表达式的类型转换 当没有信息丢失时,变量可被自动升级为一个较长的形式 (如 :int至 long的升级 ) long bigval = 6。 // 6 is an int type, OK int smallval = 99L。 // 99L is a long, illegal double z =。 // is float, OK float z1 =。 // is double, illegal 一般来讲,如果变量类型至少和表达式类型一样大(位数相同),则你可认为表达式是赋值兼容的。 对 + 运算符来说,当两个操作数是原始数据类型时,其结果至少有一个 int,并且有一个通过提升操作数到结果类型、或通过提升结果至一个较宽类型操作数而计算的值,这可能会导致溢出或精度丢失。 例如: short a, b, c a = 1; b = 2; c = a + b; 上述程序会因为在操作 short之前提升每个 short至 int而出错。 然而,如果 c被声明为一个 int,或按如下操作进行类型转换: c = (short)(a + b)。 则上述代码将会成功通过。 实例分析 2 问题描述 在 TelCom公司中有几百名员工,他们有各自的姓名,部门; tom和 bob分别在管理部和开发部,编写代码实现该描述。 解决方案: 1. 问题分析 2. 声明类 3. 创建并初始化。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。