《新概念Java程式设计大学教程》是2013年8清华大学出版社出版的图书,作者是张基温。
基本介绍
- 书名:新概念Java程式设计大学教程
- 作者:张基温
- ISBN:9787302329169
- 定价:49元
- 出版社:清华大学出版社
- 出版时间:2013年8月8日
- 装帧:平装
图书简介
本书结构新颖、概念清晰、面向套用,渗透了作者提出的“以思路训练为主线”的程式设计教育理念;书中例题丰富、习题题型多、覆盖面宽,为读者建立了一个全新概念的立体学习环境,并引导学生进行探索式学习。全书共分为4篇: 第1篇为面向对象启步,用5个例子引导读者逐步建立面向对象的思维方式和基本的设计能力,将Java基本语法贯穿其中;第2篇为面向抽象编程,主要介绍抽象类、接口和设计模式;第3篇为基于API开发,包括多执行绪编程、图形用户界面、网路编程、JavaBean、持久化技术;第4篇为面向Web开发,介绍Servlet、JSP、Struts和Spring,并引出软体架构的概念。通过这4篇,可以达到夯实基础、面向套用、领略全貌的教学效果。
本书适合各种层次的计算机及相关专业作为程式设计教学的教材,也适合培训和自学。
图书目录
第1篇Java面向对象启步第1单元职员类3
1.1从对象到类: 类的定义3
1.1.1对象建模3
1.1.2类: 对象的抽象4
1.1.3信息隐蔽与类成员的访问控制6
1.1.4成员变数与数据类型6
1.1.5成员方法: 定义与调用8
1.1.6Java关键字与标识符9
1.2从类到对象: 对象的声明、建立与初始化10
1.2.1创建对象的过程11
1.2.2构造方法12
1.2.3对象成员的访问与this13
1.3包13
1.3.1包的作用与结构13
1.3.2包的声明14
1.3.3包或类的导入14
1.4流与Java输入输出初步15
1.4.1流的概念15
1.4.2System类与标準I/O流对象15
1.4.3使用PrintStream类的println()和print()方法输出16
1.4.4使用Scanner类进行键盘输入16
1.5源程式档案与Java平台17
1.5.1主方法17
1.5.2源程式档案17
1.5.3Java程式的编译与解释19
1.6Java开发运行环境20
1.6.1JDK20
1.6.2Eclipse开发环境22
习题127第2单元计算器类32
2.1计算器类的定义32
2.1.1问题建模32
2.1.2Calculator类的Java描述32
2.1.3运算符及其运算规则33
2.1.4程式的可靠性: 程式测试和调试33
2.1.5整数除的风险与对策35
2.2异常处理——Calculator类改进之一36
2.2.1Java的隐含异常处理机制37
2.2.2Java程式中的显式异常处理37
2.2.3进行异常处理的4种方式38
2.3用选择结构确定计算类型——Calculator类改进之二42
2.3.1用ifelse实现方法calculate()42
2.3.2关係操作符44
2.3.3用switch结构实现计算方法calculate()44
2.4判断结构的测试46
2.4.1逻辑覆盖测试及其策略46
2.4.2本例的测试用例设计50
2.5使用static成员变数存储计算结果——Calculator类改进之三50
2.5.1static变数的性质50
2.5.2带有static成员的Calculator类定义51
习题252第3单元素数序列60
3.1问题描述与对象建模60
3.1.1对象建模60
3.1.2getPrimeSeries()方法算法分析60
3.1.3isPrime()方法的设计与静态方法的使用61
3.2变数的访问属性63
3.2.1变数的作用域63
3.2.2静态变数、实例变数与方法变数的存储与生命期64
3.2.3对象的生命期与Java垃圾回收64
3.3Java的重複控制结构65
3.3.1while结构和dowhile结构65
3.3.2for结构66
3.3.3continue语句和break语句67
3.3.4PrimeSeries类的定义代码68
3.4重複控制结构的测试69
3.4.1等价分类法与边值分析法69
3.4.2循环结构的测试用例设计70
3.4.3本例测试数据的设计70
3.5知识连结71
3.5.1Java操作符的优先权别与结合性71
3.5.2表达式及其求值规则72
习题372第4单元阶乘计算器80
4.1阶乘计算器类建模80
4.2用叠代方法实现的阶乘计算器80
4.2.1用叠代法实现getFactorial()方法80
4.2.2考虑特殊情况的getFactorial()方法算法81
4.2.3构造方法定义82
4.2.4测试用例设计82
4.2.5主方法设计83
4.2.6完整的阶乘类定义83
4.3用递归方法实现的阶乘计算器84
4.3.1问题的提出84
4.3.2递归过程85
4.4Hanoi游戏机86
4.4.1问题描述86
4.4.2问题建模86
4.4.3成员方法hanoiPlay()的实现86
4.4.4HanoiGame类的定义87
4.4.5递归过程分析87
4.5知识连结88
4.5.1直接数的表示形式88
4.5.2BigDecimal和BigInteger90
4.5.3基本类型的包装91
4.5.4类型转换92
4.5.5String类95
习题496第5单元扑克游戏99
5.1数组与扑克牌的表示和存储99
5.1.1数组的概念99
5.1.2数组引用变数的声明和创建99
5.1.3数组的显式初始化100
5.1.4数组元素的访问101
5.1.5ForEach循环101
5.2随机数与扑克游戏洗牌102
5.2.1随机数的概念102
5.2.2Random类102
5.2.3一次洗牌算法103
5.2.4洗牌方法的测试104
5.2.5n次洗牌算法105
5.2.6Math类107
5.3扑克整理与数组排序108
5.3.1冒泡排序算法108
5.3.2基于冒泡排序算法的cardSort()方法109
5.4扑克发牌与二维数组109
5.4.1基本的发牌算法109
5.4.2用二维数组表示玩家手中的牌110
5.4.3使用二维数组的发牌方法111
5.5数组实用类: java.util.Arrays113
5.5.1数组元素检索方法113
5.5.2数组比较方法113
5.5.3数组元素填充方法114
5.5.4数组元素升序排序方法114
5.6String数组与命令行参数115
5.6.1引用数组和String数组115
5.6.2命令行参数115
5.7知识连结: Vector类115
习题5118第6单元学生研究生122
6.1学生类研究生类层次结构122
6.1.1由Student类派生GradStudent类122
6.1.2关键字this和super 124
6.1.3Java继承规则 126
6.2访问许可权控制126
6.2.1类成员的访问许可权控制级别126
6.2.2类的访问许可权控制级别126
6.2.3private构造方法127
6.3类层次中的类型转换127
6.3.1类层次中的赋值兼容规则127
6.3.2里氏代换原则128
6.3.3类型转换与类型测试128
6.4方法覆盖与隐藏129
6.4.1派生类实例方法覆盖基类中原型相同的实例方法129
6.4.2派生类静态方法隐藏基类中原型相同的静态方法130
6.4.3JVM的绑定机制131
6.5知识连结132
6.5.1Object类132
6.5.2Java异常类和错误类的继承体系135
习题6137
第2篇Java面向抽象编程第7单元抽象类与接口151
7.1圆、三角形和矩形151
7.1.1三个独立的类: Circle、Rectangle和Triangle151
7.1.2final关键字153
7.1.3Java构件修饰符154
7.1.4枚举154
7.2抽象类155
7.2.1由具体类抽象出抽象类155
7.2.2抽象类的特徵160
7.3接口160
7.3.1接口及其定义160
7.3.2接口的实现161
7.3.3关于接口的进一步讨论163
习题7164第8单元面向对象程式设计的基本原则172
8.1从可重用说起: 合成/聚合优先原则173
8.1.1继承重用的特点174
8.1.2合成/聚合重用及其特点174
8.1.3合成/聚合优先原则174
8.2从可维护性说起: 开闭原则176
8.2.1软体的可维护性和可扩展性176
8.2.2开闭原则177
8.3面向抽象编程177
8.3.1具体与抽象177
8.3.2依赖倒转原则178
8.3.3接口与面向接口的编程178
8.3.4面向接口编程举例179
8.4单一职责原则183
8.4.1对象的职责183
8.4.2单一职责原则的概念183
8.4.3接口分离原则184
8.5不要和陌生人说话188
8.5.1狭义迪米特法则189
8.5.2广义迪米特法则189
习题8190第9单元设计模式举例193
9.1图形对象的创建问题193
9.1.1简单工厂模式194
9.1.2工厂方法模式199
9.1.3其他创建性设计模式203
9.2商场行销问题204
9.2.1策略模式的引入205
9.2.2策略模式与简单工厂模式结合210
9.2.3其他行为型设计模式213
9.3讯息传送问题218
9.3.1不用模式的解决方案218
9.3.2採用桥接模式的解决方案222
9.3.3其他结构型设计模式225
习题9229第10单元反射、配置档案与程式打包发布231
10.1反射231
10.1.1类档案与类载入231
10.1.2Class对象232
10.1.3反射API235
10.1.4使用反射的简单工厂模式237
10.2Java程式的属性配置档案238
10.2.1.properties配置档案和XML配置档案238
10.2.2Java应用程式读取配置档案239
10.2.3使用反射+配置档案的简单工厂模式242
10.3Java程式的打包与发布243
10.3.1Java程式打包与JAR档案包243
10.3.2manifest档案244
10.3.3创建可执行JAR包246
习题10250
第3篇基于API的Java开发第11单元Java图形用户界面技术255
11.1图形用户界面的基本知识255
11.1.1组件与容器255
11.1.2布局管理器与坐标系256
11.1.3事件与事件监听器258
11.1.4GUI程式开发的基本过程259
11.2AWT及其套用259
11.2.1AWT及其API259
11.2.2抽象类Component与AWT组件259
11.2.3抽象类Container与AWT容器262
11.2.4AWT布局管理器264
11.3事件处理266
11.3.1AWT事件类266
11.3.2事件监听接口266
11.3.3组件注册事件监听器269
11.3.4事件适配器271
11.3.5内嵌类、匿名类及其在事件处理中的套用271
11.4Swing及其套用275
11.4.1Swing的特点275
11.4.2Swing组件276
11.4.3Swing布局管理器 281
11.4.4Swing事件处理284
习题11286第12单元Java多执行绪291
12.1Java多执行绪概述291
12.1.1进程与执行绪291
12.1.2执行绪的状态292
12.1.3Java多执行绪机制293
12.1.4Thread类293
12.2执行绪状态控制295
12.2.1创建执行绪295
12.2.2执行绪调度 298
12.2.3执行绪暂停 299
12.3多执行绪管理299
12.3.1多执行绪同步共享资源299
12.3.2执行绪死锁问题301
12.3.3执行绪组301
习题12302第13单元Java网路程式设计307
13.1Java Socket程式设计基础307
13.1.1IP位址与InetAddress类307
13.1.2连线埠号与套接口地址309
13.1.3客户端/伺服器工作模式311
13.2基于TCP的Java Socket程式设计311
13.2.1Socket类和ServerSocket类311
13.2.2TCP Socket通信过程313
13.2.3TCP Socket程式设计314
13.3基于UDP的Java Socket程式设计318
13.3.1DatagramPacket类和DatagramSocket类318
13.3.2DatagramSocket类319
13.3.3UDP Socket程式设计321
13.4基于URL的Java网路程式设计324
13.4.1URI、URL和URN324
13.4.2URL类325
13.4.3URLConnection类326
习题13326第14单元JavaBean328
14.1JavaBean概述328
14.1.1软体组件与JavaBean328
14.1.2JavaBean结构328
14.1.3JavaBean规範331
14.2开发JavaBean331
14.2.1JavaBean的API331
14.2.2JavaBean开发工具332
习题14334第15单元Java数据持久化技术336
15.1资料库与数据持久化技术336
15.1.1资料库与SQL336
15.1.2数据持久层的概念339
15.2JDBC原理340
15.2.1JDBC体系结构340
15.2.2JDBC驱动程式341
15.2.3用JDBC URL命名数据源342
15.3JDBC工作流程344
15.3.1载入资料库驱动程式344
15.3.2创建一个数据源连线347
15.3.3创建SQL工作空间349
15.3.4传送SQL语句,得到结果集349
15.3.5处理结果集351
15.3.6关闭资料库连线352
15.3.7实例352
15.4连线资料库的配置档案354
15.4.1从配置档案读取连线资料库字元串的程式结构354
15.4.2主流资料库配置档案示例357
15.5事务处理358
15.5.1事务的概念358
15.5.2JDBC中的事务处理359
15.5.3实例360
15.6持久层架构Hibernate362
15.6.1ORM362
15.6.2Hibernate的基本原理362
15.6.3Hibernate工作流程364
15.6.4Hibernate开发流程364
15.6.5Hibernate开发环境365
习题15365
第4篇面向Web开发第16单元Java Web概述369
16.1Web支持技术369
16.1.1超文本与超媒体369
16.1.2HTML370
16.1.3XML371
16.1.4HTTP377
16.2Java Web技术演进381
16.2.1Java Applets——客户端Java动态Web技术381
16.2.2从CGI到Java Servlet再到JSP383
16.2.3Java EE385
习题16386第17单元Java Servlet390
17.1Servlet环境390
17.1.1安装JSDK390
17.1.2JSDK的配置390
17.1.3Servlet容器与Tomcat伺服器391
17.2Servlet语法393
17.2.1Servlet类定义393
17.2.2Servlet对象生命周期394
17.2.3HttpServlet类的doXxx()方法395
17.3Servlet运行396
17.3.1Servlet类位元组码档案的生成和保存396
17.3.2Servlet的部署和运行397
习题17398第18单元JSP技术404
18.1JSP概要404
18.1.1JSP页面结构404
18.1.2JSP运行机制405
18.1.3JSP环境引擎 405
18.1.4JSP注释元素407
18.1.5JSP页面元素407
18.2JSP脚本元素408
18.2.1JSP声明408
18.2.2JSP表达式408
18.2.3JSP代码段408
18.3JSP指令元素409
18.3.1include指令409
18.3.2page指令409
18.4JSP动作元素410
18.4.1页面插入动作include411
18.4.2页面切换动作forward412
18.5JSP内置对象413
18.5.1out对象414
18.5.2request对象414
18.5.3response对象415
18.5.4session对象419
18.5.5application对象421
18.6JSP与JavaBean互动425
18.6.1JSP与JavaBean互动的动作元素425
18.6.2JSP与JavaBean互动实例427
习题18429第19单元MVC模式434
19.1MVC概述434
19.1.1MVC的概念434
19.1.2MVC组件与工作原理434
19.1.3MVC的优势与套用435
19.2JSP+Servlet+JavaBean实现的MVC435
19.2.1JSP+Servlet+JavaBean 实现的MVC模式结构435
19.2.2JSP+Servlet+JavaBean 实现的MVC实例436
习题19440第20单元Java Web架构简介442
20.1软体架构概述442
20.1.1架构的概念442
20.1.2软体架构及其目标443
20.1.3Java EE套用分层模型443
20.2经典MVC支柱框架——Struts444
20.2.1Struts的构成444
20.2.2Struts的工作过程446
20.2.3Struts套用446
20.2.4Struts与Hibernate整合446
20.2.5Struts 2447
20.3基于控制反转和面向切面的轻量级框架——Spring448
20.3.1基本概念448
20.3.2Spring的组件架构451
20.3.3Spring的下载和安装453
20.3.4Spring套用实例453
20.3.5SSH整合455
20.4Java Web用户界面标準——JSF框架455
20.4.1JSF的特点455
20.4.2JSF的工作流程456
20.4.3JSF应用程式结构456
习题20457附录AJava运行时异常类和错误类458
A.1RuntimeException类458
A.2Error类459参考文献462