当前位置:首页 > 工业技术
探秘Java 如何像计算机科学家一样思考
探秘Java 如何像计算机科学家一样思考

探秘Java 如何像计算机科学家一样思考PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:(美)Allen Downey著;张平译
  • 出 版 社:杭州:浙江大学出版社
  • 出版年份:2004
  • ISBN:7308040364
  • 页数:390 页
图书介绍:本书自浅入深,全面介绍Java 语言的变量,类型,方法,条件,循环,类和对象,以及数据结构内容,链表,堆栈,队列,优先队列,树,堆,映射表,哈希表以及哈夫曼码。
《探秘Java 如何像计算机科学家一样思考》目录

前言 1

此书的缘起 1

此书的宗旨 2

面向对象的程序设计 3

数据结构 3

计算机AP考试 4

有关此书的版权 5

关于此书书名 5

第1章 按部就班的方式 7

1.1什么是程序语言 7

1.2什么是程序 10

1.3什么是调试 11

1.4形式化语言和自然语言 13

1.5第一个程序 15

1.6术语 16

1.7练习 17

第2章 变量和类型 19

2.1再打印一些东西 19

2.2变量 21

2.3赋值 22

2.4打印变量 23

2.5关键字 24

2.6操作符 25

2.7操作符的执行顺序 26

2.8对字符串的操作 27

2.9组合句 27

2.10术语 28

2.11练习 29

第3章 方法 31

3.1浮点数 31

3.2把double类型转换成int类型 33

3.3数学函数 33

3.4组合 35

3.5自己编写新方法 35

3.6类和方法 38

3.7具有多个方法的程序 39

3.8形式参数和实际参数 40

3.9堆栈状态图 41

3.10具有多个参数的方法 42

3.11具有结果的方法 43

3.12术语 43

3.13练习 44

第4章 条件和递归 47

4.1模除运算 47

4.2条件执行 47

4.3选择执行 48

4.4链式条件 49

4.5嵌套条件 50

4.6返回语句 51

4.7类型转换 51

4.8递归 52

4.9递归调用方法的堆栈图 54

4.10惯例和神圣规则 55

4.11术语 56

4.12练习 56

第5章 “开花结果”的方法 60

5.1返回值 60

5.2“逐渐生长”的程序 62

5.3组合 65

5.4重载 66

5.5布尔函数 67

5.6逻辑运算符 68

5.7布尔方法 69

5.8递归的例子 70

5.9确信跳跃 72

5.10另一个递归例子 73

5.11术语 74

5.12练习 75

第6章 重复 80

6.1变量的多次赋值 80

6.2重复 81

6.3while语句 81

6.4表格 83

6.5两维表 86

6.6封装和泛化 87

6.7方法 88

6.8进一步封装 88

6.9局部变量 89

6.10进一步泛化 90

6.11术语 92

6.12练习 92

第7章 字符串和其他 96

7.1调用依附于某个对象的方法 96

7.2长度 97

7.3遍历 98

7.4运行错误 99

7.5阅读说明文档 99

7.6index0f方法 100

7.7循环和计数 101

7.8加一和减一操作符 103

7.9字符的算术 104

7.10不可更改的字符串 105

7.11字符串之间不能直接比较 106

7.12术语 107

7.13练习 108

第8章 趣味对象 113

8.1有趣的是什么 113

8.2包 113

8.3Point对象 114

8.4实例变量 115

8.5把对象作为参数 116

8.6矩形 116

8.7把对象作为返回值 117

8.8对象是可变动的 118

8.9别名 119

8.10空引用 121

8.11垃圾回收机制 122

8.12对象和基类 123

8.13术语 123

8.14练习 124

第9章 定做对象 129

9.1类的定义和对象类型 129

9.2Time类 130

9.3构造器 131

9.4编写多个构造器 132

9.5生成新对象 133

9.6打印对象 134

9.7操纵对象 135

9.8无瑕作用 135

9.9改动作用 137

9.10填入作用 139

9.11哪一种更好 139

9.12发展型风格vs规划型风格 140

9.13泛化处理 141

9.14算法 142

9.15术语 142

9.16练习 143

第10章 数组 147

10.1数组元素的存取 148

10.2数组的拷贝 149

10.3for循环 150

10.4数组和对象 151

10.5数组长度 151

10.6随机数 152

10.7随机数数组 153

10.8计数 154

10.9频率直方图 156

10.10一次遍历解决问题 156

10.11术语 157

10.12练习 157

第11章 对象数组 162

11.1各种组合 162

11.2扑克牌对象 162

11.3printCard方法 164

11.4sameCard方法 166

11.5compareCard方法 168

11.6扑克牌数组 169

11.7printDeck方法 171

11.8寻找和搜索 171

11.9一整副牌和一部分牌 175

11.10术语 176

11.11练习 176

第12章 数组对象 178

12.1deck(一副纸牌)类 178

12.2洗牌 180

12.3选择排序 181

12.4一手牌(一部分牌) 182

12.5洗牌和发牌 183

12.6混合排序 184

12.7术语 187

12.8练习 187

第13章 面向对象程序设计 190

13.1程序设计语言及风格 190

13.2对象方法和类方法 191

13.3当前对象 191

13.4介绍一种对象——复数对象 191

13.5第一个复数方法 193

13.6另一个复数方法 194

13.7具有改动作用的方法 195

13.8改换成字符串的方法 195

13.9等于方法 197

13.10在对象方法里调用对象方法 198

13.11小心无大错 198

13.12继承 199

13.13可作图的矩形类 199

13.14类的层级 201

13.15面向对象的程序设计 202

13.16术语 202

13.17练习 202

第14章 链表 204

14.1对象的引用 204

14.2节点(Node)类 204

14.3链表是聚集器 206

14.4链表与递归 209

14.5无穷链表 210

14.6原义含糊定理 211

14.7针对节点的对象方法 212

14.8改动链表 212

14.9“外包装”和“内贤助” 213

14.10IntList类 214

14.11真实量 216

14.12术语 216

14.13练习 217

第15章 堆栈 219

15.1抽象数据结构 219

15.2抽象数据结构——堆栈(Stack) 220

15.3Java堆栈对象 220

15.4打包类 223

15.5创建打包类对象 223

15.6创建更多的打包类对象 224

15.7重新获得打包类的值 224

15.8打包类中的几种方法 225

15.9后缀表达式 225

15.10语法分析 226

15.11抽象数据结构的实施 228

15.12运用数组来实施堆栈 228

15.13变动数组大小 230

15.14术语 232

15.15练习 232

第16章 队列和优先队列 235

16.1队列抽象数据结构 236

16.2装饰板 238

16.3链接型队列 239

16.4循环缓冲区 241

16.5优先队列 246

16.6元类 247

16.7优先队列的数组实施 247

16.8使用优先队列 249

16.9高尔夫球手记分类 250

16.10术语 252

16.11练习 253

第17章 树 255

17.1树的节点 255

17.2创建树结构 256

17.3周游一棵树 257

17.4表达式树 258

17.5树的遍历 259

17.6对象封装 260

17.7定义Visitable接口类 261

17.8接口的实施 262

17.9矢量(Vector)类 263

17.10Iterator(巡流)类 265

17.11术语 266

17.12练习 267

第18章 堆 270

18.1用数组来实施树 271

18.2算法占用资源分析 275

18.3mergesort排序的分析 277

18.4附加消耗 279

18.5优先队列的实施 280

18.6堆的定义 282

18.7从堆中删除元素 283

18.8向堆中添加元素 285

18.9堆中操作的时间特性 286

18.10堆排序 287

18.11术语 288

18.12练习 288

第19章 映射表 290

19.1数组、矢量与映射表 290

19.2映射表抽象数据结构 291

19.3内置的哈希表 291

19.4用矢量实施映射表 294

19.5链表(List)接口类 297

19.6哈希表的实施 297

19.7哈希函数 298

19.8哈希表的伸缩 300

19.9哈希表伸缩的时间特性 301

19.10术语 302

19.11练习 302

第20章 哈夫曼码 305

20.1变长码 305

20.2字母频率表 306

20.3哈夫曼树 308

20.4super方法 311

20.5解码 313

20.6编码 314

20.7术语 315

20.8练习 315

附录A 按部就班开发程序 317

附录B 除错 324

B.1编译时出现的错误 324

B.2运行时出现的错误 328

B.3逻辑错误 331

附录C 输入与输出 337

C.1System中的对象 337

C.2键盘输入 338

C.3文件输入 339

附录D 图形 340

D.1画板和图形对象 340

D.2在Graphics类的对象里调用各种方法 341

D.3坐标系 342

D.4米老鼠的脸 343

D.5另外的绘图命令 344

D.6分形的米老鼠 345

D.7有关图形的一些类定义 347

D.8练习 349

附录E 与Java环境混个脸熟 354

E.1下载和安装Java语言 354

E.2B1ueJ开发环境 356

E.3有关B1ueJ的项目 361

E.4有关B1ueJ的类 365

E.5执行程序 369

E.6程序的调试和排错 374

E.7终端窗口 377

E.8改变设置 379

附录F 太过完美的洗牌 383

F.152张纸牌的洗牌 383

F.2n张纸牌的AB顺序洗牌 385

F.3n张纸牌的BA顺序洗牌 387

F.4练习 388

附录G 练习分析与解答 389

附录H GNU Free Documentation License 389

返回顶部