《Head First Java》20200909读书笔记
第六章 开发真正的Sink a Dot Com游戏
创建一个攻击格子游戏,有7X7的格子和3间DotCom公司。每个DotCom占用3个格子。
游戏目标:
以最少的猜测次数打掉计算机所安排的DotCom网站。
计算机会根据你的表现来评分。
初试设置:
程序启动后,计算机会在虚拟的7X7方格上安排3个DotCom网站。
安排完成后,游戏会要求你开始猜坐标。
进行游戏:
命令行进行。
计算机会提示你输入所猜测的位置(格子),你会输入“A3”或“C5”等。
计算机会回给你命中“Hit”、没中“Miss”或击沉“sunk”等回应。当你清光所有的DotCom时,游戏会列出你的分数并结束。
超强布尔表达式
“不等于”运算符(!= 和 !)
if (model != 2000){
//非model 2000的工作
}
if (!brand.equals("X")){
//非X牌的工作
}
短运算符( &&,|| )
在&&表达式中,左右两边都为true这个表达式才会为true。
因此,如果Java虚拟机发现左方的表达式为false,则它不需也不会去计算右方的算式才知道要返回false。
||也有相同的特点,所以我们可以用下面这种方式来避免调用内容为null的指针变量的方法。
if (reFVar != nunll && reFVar.iaValidType()){
//执行有效变量的工作
}
长运算符( &,| )
&与|运算符使用在boolean表达式会强制Java虚拟机,一定要计算运算符两边的算式。但这两个运算符通常是用来作位的运算。
使用函数库(Java API)
- 在Java的API中,类是被包装在包中。
- 要使用API中的类,你必须知道它被放在哪个包中。
- 在Java函数库中的每个类都属于某个包。这些包都有名字,比如javax.swing(里面带有很快就会遇到的Swing接口类)。ArrayList是放在java.util这个包中,java.util放了很多工具类。
- 在程序的某个地方必须指明函数库类的完整名称,也就是包的名称加上类的名称。
- System.out.println、String与Math.Rondom()都是属于java.lang这个包。
你必须指明程序代码中所使用到的类的完整名称
ArrayList全名是
java.util.ArrayList
import java.util.ArrsyList;
为何需要全名?这就是包的由来吗?
- 包之所以很重要有3个原因。
- 首先,它们可以帮助组织项目或函数库,相对于一大堆零散的类,以功能来组织比较好。
- 其次,包可以制造出名称空间,以便错开相同名称的类。例如有好几个人都设计出Set这个类,我们就可以通过不同的名称来分辨。
- 最后,包可以通过限制同一包之间的类才能相互存取以维护安全性。