首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 正文

Java游戏编程读书笔记

2.3 Java中的运算符
2.3.1 赋值运算符
Java为还没有准备进行初始化或引用为空的对象提供了一个特殊的null值。null值指向内存零位置,并说明这个对象还没有创建。
2.3.2 比较运算符
一般来说,当需要判断一个给定的条件是否在对象之间存在时,如compare、compareTo、equals这样的方法会比较好。
2.3.3 算术运算符
记住一个整数被另外一个整数除后,结果还是整数,这就是100/3后结果为整数33的原因。
2.3.4 自增和自减运算符
2.3.5 更多的整数运算符
1.“位”运算符
下面来为一个简单的“妖怪”对象定义下面的属性:
public final static int ALIVE=1;
public final static int HUNGRY=2;
public final static int ANGRY=4;
public final static int HAIRY=8;
注意这里使用了独特的能力来描绘每一个属性。用这种方法,离右边最远的那一位表示妖怪是活是死,相邻的第二位表示妖怪是否饥饿……。这里无须对已定义的属性再定义可选择的属性,比如DEAD或NOT_HUNGRY。1即代表一个指定属性的真值,而0则相反。我们来创建一个int变量,名为attributes,初始值为0:
int attributes=0;
要为妖怪设置属性,比如ALIVE且HAIRY,使用位或运算符,如下:
attributes=ALIVE | HAIRY;
要使妖怪生气,则把attributes变量和ANGRY属性进行或运算即可:
attributes |=ANGRY;
要访问每一个属性,则使用位与运算符。下面的代码片段对每个属性的存在进行测验:
if(attributes & ALIVE>0)
 System.out.println(“I am alive!”);
if(attributes & HUNGRY>0)
 System.out.println(“I am hungry!”);
if(attributes & HAIRY>0)
 System.out.println(“I am hairy!”);
属性设置好后,如果想重置一个特殊的属性应该怎么办呢?要实现这一点,使用位与和非运算符。下面显示了从attributes变量中重置HAIRY属性的做法:
attributes &= ~HAIRY
当然,如果只是想简单地重置妖怪的所有属性,只需把attributes变量设置为0即可。
attributes=0;
提示:位或、与、异或运算符不仅能够操作整数,也可以操作boolean变量。为简单起见,这里决定不作正式介绍,但是当有需求出现时,它们仍然是有效的操作。
2.3.6 使用点运算符
2.3.7 instanceof运算符
2.3.8 优先级顺序
2.3.9 关于运算符的记忆要点
 运算符是使代码运行的齿轮。关键点是知道哪些运算符是可用的以及每个运算符的使用方法。
 虽然使用位运算符对程序来说不是很“有机的”方法,但是它们足够快而简洁,会成为游戏程序员的最好朋友。
 如果不想记住运算符优先级的14个级别,那么应使用圆括号或者把大表达式细分为小表达式。
2.4 条件语句
2.4.1 switch语句
C++注解:Java中布尔表达式求值的规则与C++中稍有不同。C++中没有真正的boolean类型,因此,这些表达式会转换成数值表达式,即,0代表false,其他的任何值都为真。Java中有真正的boolean变量,这样的表达式必定会得到一个boolean结果。所以,C++表达式while(1)在Java中必须变为while(true)。这样做是很好的,因为它迫使程序员“考虑布尔”,而这样会减少错误的发生。这也是从boolean型到任何整数类型的可允许转换不存在的原因。
2.4.2 Java中的循环语句
2.4.3 用break、continue和return提前退出循环
2.5 处理运行时异常
Java异常处理的目的在于:让我们的程序在出现运行时错误时不至于崩溃,仍然可以继续运行,直到正常结束,这样可以最大可能的避免出现内存泄漏。
一般说来,当有异常存在时,它被“扔给”应用程序,应用程序中恰当的“catch”代码块会处理这个错误。特别地,声明运行时错误种类以及位置的信息会打印在标准输出设备上。
作为程序员有两种可以使用异常处理的主要方法。第一是在方法声明中可以声明throws子句,这在不想自己另外写代码处理异常时非常有用。第二是使用try和catch结构来显式地解决异常。

2.5.1 使用try和catch块

2.5.2 使用throws子句
这样不是显式处理错误,而是把错误传给(退还给)调用的方法。错误一直向上传,直到有显式处理这个错误的方法为止。
2.5.3 关于流程控制语句的记忆要点
 所有的Java代码都被封装成不同类型的块。像条件和循环语句这样的流程控制语句决定了程序的行为。
 异常处理能够帮助处理那些不可避免的运行时错误。throws语句和try-catch块都会捕捉和报告这些错误。
2.6 总结
希望现在读者对构成Java程序的很多基础结构有好的感觉。虽然本章包括的东西非常多,但是C++程序员应当能够很快地抓住两种语言之间的异同点,其他的程序员,除了语法可能是潜在的障碍之外,也应当熟悉本章列出的概念。
试着做下面的练习,它们会解开读者对本章内容的迷惑。在第3章中,我们将通过设计和使用面向对象的类来进一步地研究Java语言。
2.7 练习
1. Java import语句的目的是什么?
2. 下面的哪个类可以在文件Gunship.java中定义?
a) public class Gunship(可以)
b) public class Starship(不可以)
c) class Gunship(可以)
d) class Spaghetti(可以)
e) public class Battleship extends Gunship(不可以)
要点:声明public的类名必须和文件名相同,根据这一点,得到以上答案
3. 下面哪个是声明java中main方法的正确方法?
a) public static void main(String[] args)
b) public static void main(String args[])
c) public static void main(String arg[])
d) public static void main(String[] arg)
e) 以上都是
要点:答案是(5)

上一页  [1] [2] [3] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·算法分析与设计之五大常用算法
 ·开发必备 漫谈Java加密保护
 ·嵌入式开发--ARM技术专题
 ·C/C++指针,认真了解,灵活运用
 ·.NET开发:C#实用基础教程
 ·软件测试工具QTP学习专题
 ·嵌入式开发单片机解决方案专题
 ·Java开发环境 Greenfoot 程序员手册
 ·C++对象布局及多态实现的探索
 ·常见排序算法的实现
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航