新書推薦:
《
唐宋绘画史 全彩插图版
》
售價:NT$
449.0
《
“御容”与真相:近代中国视觉文化转型(1840-1920)
》
售價:NT$
505.0
《
鸣沙丛书·大风起兮:地方视野和政治变迁中的“五四”(1911~1927)
》
售價:NT$
454.0
《
海洋、岛屿和革命:当南方遭遇帝国(文明的另一种声音)
》
售價:NT$
485.0
《
铝合金先进成型技术
》
售價:NT$
1214.0
《
英雄之旅:把人生活成一个好故事
》
售價:NT$
398.0
《
分析性一体的涌现:进入精神分析的核心
》
售價:NT$
556.0
《
火枪与账簿:早期经济全球化时代的中国与东亚世界
》
售價:NT$
352.0
|
編輯推薦: |
本书结构新颖、概念清晰、面向应用,渗透了作者提出的以思路训练为主线的程序设计教育理念;书中例题丰富、习题题型多、覆盖面宽,为读者建立了一个全新概念的立体学习环境,并引导学生进行探索式学习
|
內容簡介: |
本书结构新颖、概念清晰、面向应用,体现了作者提出的程序设计=计算思维 语言艺术 工程方法的教学思想。全书共分为4篇: 第1篇为面向对象启步,用4个例子引导读者逐步建立面向对象的思维方式和培养基本的设计能力,将Java基本语法贯穿其中;第2篇为面向抽象的结构优化,在介绍了抽象类和接口这两个基本机制后,用一个故事引入了面向对象程序设计原则,接着用设计模式举例加深对面向对象结构优化必要性的认识,为进一步学习设计模式打下基础,最后介绍了反射技术;第3篇为基于API的开发,包括图形用户界面、网络编程、JDBC、JavaBean、程序文档化、程序配置和打包与发布;第4篇为Java高级技术,包括多线程技术、泛型编程和数据结构接口。通过这4篇可以达到夯实基础、面向应用、领略全貌的教学效果,并适应不同层次的教学需求。
本书采用问题体系,具有零起点、快起动、立意新、重内涵的特点,可作为高等学校有关专业的程序设计课程的教材,也适合培训和自学。
|
關於作者: |
张基温,知名学者,计算机教育家。先后担任名古屋大学访问学者,山西财经大学、江南大学、华东政法大学、华南农业大学珠江学院、常熟理工学院、福建工程学院、广西职业技术学院、晋城学院等多所大学的专职、客座或兼职教授,北京大学博雅方略城市发展与信息化研究中心研究员,南京大学出版社总编顾问,太原高新技术区IT研究院实验室主任,山西省紧缺人才专家委员会副主任,中国信息经济学会常务理事,全国高等院校计算机基础教育研究会常务理事兼课程建设委员会副主任,中国计算机学会教育专业委员会委员,国家NIT考试委员会委员,江苏省计算机基础教学指导委员会委员,山西省新世纪专家学者协会副会长。为清华大学出版社、电子工业出版社、中国水利水电出版社、南京大学出版社、中国铁道出版社等主编了信息管理与信息系统专业、计算机实验与实践、大学生信息素养等多个系列教材。研究和教学领域涉及计算机科学与技术、信息管理、信息经济学、电子政务与电子商务、服务科学,发表论文一百余篇,已出版著作90余种。在程序设计教学领域,从20世纪80年代初就尝试将软件工程方法和算法思想引入程序设计课程,20世纪90年代开始倡导从语法体系向问题体系转变、程序设计与程序测试同步进行、重在逻辑思维和方法训练、语法够用就行,并认为不了解设计模式,就不会真正理解面向对象。
|
目錄:
|
第1篇面向对象程序设计启步第1单元职员类3
1.1从现实世界中的对象到类模型3
1.1.1程序=模型 表现3
1.1.2现实世界中的对象分析4
1.1.3职员类的UML描述5
1.1.4职员类的Java语言描述5
1.1.5职员类的Java代码说明6
1.2类的应用与测试8
1.2.1对象引用及其创建8
1.2.2构造器与this9
1.2.3对象成员的访问与this11
1.2.4主方法与主类12
1.2.5类文件与包14
1.3Java程序开发16
1.3.1Java编译器与Java虚拟机16
1.3.2JDK16
1.3.3Eclipse开发环境18
1.4知识链接24
1.4.1Java语言及其特点24
1.4.2Java数据类型26
1.4.3字面值27
1.4.4基本类型的转换29
1.4.5Java关键词与标识符32
1.4.6流与标准IO流对象33
1.4.7Java注释34
习题135第2单元计算器类38
2.1计算器类的定义38
2.1.1计算器建模38
2.1.2Calculator类的Java描述39
2.2Calculator类的测试39
2.2.1测试数据设计39
2.2.2规避整除风险Calculator类改进之一40
2.3异常处理Calculator类改进之二42
2.3.1Java异常处理概述42
2.3.2Java异常处理的基本形式42
2.3.3用throws向上层抛出异常44
2.3.4用throw直接抛出异常45
2.3.5Java提供的主要异常类47
2.4用选择结构确定计算类型Calculator类改进之三47
2.4.1用ifelse实现calculate方法47
2.4.2关系操作符49
2.4.3用switch结构实现calculate方法50
2.5用静态成员变量存储中间结果Calculator类改进之四52
2.5.1静态成员变量的性质52
2.5.2带有静态成员变量的Calculator类定义52
2.6知识链接54
2.6.1Java表达式54
2.6.2静态方法类方法55
2.6.3初始化块与静态初始化块57
2.6.4String类60
2.6.5正则表达式61
2.6.6Scanner类63
习题264第3单元素数序列产生器72
3.1问题描述与对象建模72
3.1.1素数序列产生器建模72
3.1.2getPrimeSequence方法的基本思路72
3.2使用isPrime判定素数的PrimeGenerator类的实现73
3.2.1采用while结构的getPrimeSequence方法73
3.2.2采用dowhile结构的getPrimeSequence方法75
3.2.3采用for结构的getPrimeSequence方法75
3.2.4重复结构中的continue语句76
3.2.5采用for结构的isPrime方法76
3.2.6将isPrime定义为静态方法77
3.2.7不用isPrime判定素数的PrimeGenerator类的实现78
3.3知识链接79
3.3.1变量的访问属性79
3.3.2变量的作用域79
3.3.3Java数据实体的生命期80
3.3.4基本类型的包装81
习题383第4单元扑克游戏90
4.1数组与扑克牌的表示和存储90
4.1.1数组的概念90
4.1.2数组的声明与内存分配90
4.1.3数组的初始化92
4.1.4匿名数组93
4.2数组元素的访问93
4.2.1用普通循环结构访问数组元素94
4.2.2用增强for遍历数组元素94
4.3洗牌95
4.3.1随机数与Random类95
4.3.2洗牌方法设计96
4.3.3含有洗牌方法的扑克游戏类设计98
4.4扑克的发牌与二维数组99
4.4.1基本的发牌算法99
4.4.2用二维数组表示玩家手中的牌100
4.4.3使用二维数组的发牌方法102
4.4.4含有洗牌、发牌方法的扑克游戏类设计102
4.5知识链接104
4.5.1数组实用类Arrays104
4.5.2java.util.Vector类105
4.5.3命令行参数107
4.5.4Math类108
习题4109第2篇面向抽象的结构优化第5单元学生研究生115
5.1学生类研究生类层次结构115
5.1.1由Student类派生GradStudent类115
5.1.2super关键字 117
5.1.3final关键字119
5.2Java的访问权限控制119
5.2.1类成员的访问权限控制119
5.2.2类的访问权限控制120
5.2.3private构造器120
5.3类层次中的类型转换121
5.3.1类层次中的赋值兼容规则121
5.3.2里氏代换原则122
5.3.3类型转换与类型测试122
5.4方法覆盖与隐藏123
5.4.1派生类实例方法覆盖基类中原型相同的实例方法123
5.4.2用@Override标注覆盖124
5.4.3派生类静态方法隐藏基类中原型相同的静态方法126
5.4.4JVM的绑定机制127
5.5知识链接128
5.5.1Object类128
5.5.2@Deprecated与@SuppressWarnings131
5.5.3Java异常类和错误类体系135
习题5137第6单元抽象类与接口145
6.1圆、三角形和矩形145
6.1.13个独立的类: Circle、Rectangle和Triangle145
6.1.2枚举147
6.2抽象类148
6.2.1由具体类抽象出抽象类148
6.2.2由抽象类派生出实例类150
6.2.3抽象类小结153
6.3接口153
6.3.1接口及其特点153
6.3.2接口的实现类154
6.3.3关于接口的进一步讨论156
6.4知识链接157
6.4.1Java构件修饰符小结157
6.4.2对象克隆158
习题6160第7单元面向对象程序架构优化规则164
7.0引言164
7.1从可重用说起: 合成聚合优先原则165
7.1.1继承重用的特点166
7.1.2合成聚合重用及其特点166
7.1.3合成聚合优先原则167
7.2从可维护性说起: 开闭原则168
7.2.1软件的可维护性和可扩展性168
7.2.2开闭原则169
7.3面向抽象编程170
7.3.1具体与抽象170
7.3.2依赖倒转原则170
7.3.3面向接口原则170
7.3.4面向接口编程举例171
7.4单一职责原则175
7.4.1对象的职责175
7.4.2单一职责原则的概念176
7.4.3接口隔离原则176
7.5不要和陌生人说话181
7.5.1狭义迪米特法则181
7.5.2广义迪米特法则182
习题7183
第8单元设计模式186
8.1设计模式概述186
8.2设计模式举例诉讼代理问题186
8.2.1无律师的涉讼程序设计186
8.2.2请律师代理的涉讼程序设计187
8.2.3关于代理模式189
8.3设计模式举例商场营销问题190
8.3.1不用策略模式的商场营销解决方案190
8.3.2策略模式的定义192
8.3.3采用策略模式的商场营销解决方案193
8.4设计模式举例图形对象的创建问题197
8.4.1简单工厂模式197
8.4.2工厂方法模式202
8.4.3策略模式与简单工厂模式结合207
8.5知识链接209
8.5.1类文件与类加载209
8.5.2Class对象210
8.5.3反射API213
8.5.4使用反射的工厂模式215
8.5.5使用反射 配置文件的工厂模式216
习题8218第3篇基于API的应用开发第9单元图形用户界面开发223
9.1图形用户界面概述223
9.1.1组件与容器223
9.1.2布局管理器与坐标系225
9.1.3事件与事件监听器227
9.1.4AWT、Swing、SWT和JFace228
9.1.5Swing程序设计的一般流程229
9.2Swing组件229
9.2.1Swing工具包229
9.2.2Swing组件体系与分类230
9.2.3Swing容器232
9.2.4Swing布局管理器235
9.3事件处理239
9.3.1事件及其分类239
9.3.2事件监听接口240
9.3.3事件监听适配器243
9.4嵌套类及其在事件处理中的应用246
9.4.1嵌套类及其分类246
9.4.2实名内部类246
9.4.3匿名内部类248
习题9250第10单元Java 网络程序设计251
10.1IP地址与InetAddress类251
10.1.1IP协议与IP地址251
10.1.2InetAddress类251
10.2Java Socket概述253
10.2.1Socket的概念253
10.2.2客户端服务器工作模式253
10.3面向TCP的Java Socket程序设计254
10.3.1Socket类和ServerSocket类254
10.3.2TCP Socket通信过程255
10.3.3TCP Socket程序设计257
10.4面向UDP的Java程序设计260
10.4.1DatagramPacket类261
10.4.2DatagramSocket类261
10.4.3UDP Socket程序设计263
10.5网络资源访问266
10.5.1URI、URL和URN266
10.5.2URL类267
10.5.3URLConnection类268
10.6知识链接268
10.6.1字节流与字符流268
10.6.2缓冲流与转换流273
10.6.3PrintWriter类275
习题10276第11单元JDBC278
11.1JDBC概述278
11.1.1JDBC的组成与工作过程278
11.1.2JDBC API及其对JDBC过程的支持278
11.2加载JDBC驱动280
11.2.1JDBC数据库驱动程序的类型280
11.2.2JDBC驱动类名与JDBC驱动下载282
11.2.3DriverManager类282
11.2.4注册Driver284
11.3连接数据源286
11.3.1数据源描述规则JDBC URL286
11.3.2获取Connection对象287
11.3.3连接过程中的异常处理290
11.3.4Connection接口的常用方法290
11.4创建SQL工作空间进行数据库操作291
11.4.1SQL291
11.4.2创建SQL工作空间293
11.4.3用Statement实例封装SQL语句293
11.5处理结果集295
11.5.1结果集游标管理295
11.5.2getXxx方法295
11.5.3updateXxx方法296
11.5.4关闭数据库连接296
11.5.5JDBC数据库查询实例296
11.6PreparedStatement接口299
11.6.1用PreparedStatement实例封装SQL语句的特点299
11.6.2PreparedStatement接口的主要方法299
11.6.3PreparedStatement对象操作SQL语句的步骤300
11.6.4Java日期数据303
11.7事务处理304
11.7.1事务的概念304
11.7.2Connection类中有关事务处理的方法304
11.7.3JDBC事务处理程序的基本结构305
11.8DAO模式307
11.8.1DAO概述307
11.8.2DAO模式的基本结构309
11.8.3DAO程序举例312
习题11318第12单元JavaBean320
12.1JavaBean概述320
12.1.1软件组件与JavaBean320
12.1.2JavaBean结构321
12.1.3JavaBean规范323
12.2开发JavaBean323
12.2.1JavaBean API323
12.2.2JavaBean开发工具324
习题12326第13单元程序文档化、程序配置与程序发布328
13.1Javadoc328
13.1.1Javadoc及其结构328
13.1.2Javadoc标签328
13.1.3Javadoc应用规范330
13.1.4Javadoc命令332
13.2自定义Annotation333
13.2.1Annotation的基本定义格式333
13.2.2向Annotation注入数据334
13.2.3通过反射提取Annotation中的数据335
13.2.4用Annotation 反射设计DAO基类336
13.3Java程序配置342
13.3.1程序配置与程序配置文件342
13.3.2.properties文件343
13.3.3XML配置文件345
13.3.4基于InputStream输入流的配置文件的读取346
13.3.5基于资源绑定的配置文件读取353
13.4Java程序的打包与发布354
13.4.1Java程序的打包与JAR文件包354
13.4.2manifest文件354
13.4.3JAR命令357
13.4.4在Eclipse环境中创建可执行JAR包359
13.4.5在MyEclipse环境中创建可执行JAR包361
习题13361
第4篇Java高级技术第14单元Java泛型编程365
14.1泛型基础365
14.1.1问题的提出365
14.1.2泛型方法367
14.1.3多泛型类368
14.2泛型语法扩展369
14.2.1泛型通配符369
14.2.2泛型设限370
14.2.3泛型嵌套370
14.3实例利用泛型和反射机制抽象DAO371
习题14373第15单元Java多线程375
15.1Java多线程概述375
15.1.1进程与线程375
15.1.2Java线程的生命周期376
15.1.3Java多线程程序实例: 室友叫醒380
15.1.4线程调度与线程优先级384
15.1.5知识链接: JVM运行时数据区384
15.2java.lang.Thread类386
15.2.1Thread类的构造器386
15.2.2Thread类中的优先级别静态常量387
15.2.3Thread类中影响线程状态的方法387
15.2.4Thread类中的一般方法388
15.2.5Thread类从Object继承的方法388
15.3多线程管理388
15.3.1多线程同步共享资源388
15.3.2线程死锁问题390
15.3.3线程组390
习题15391第16单元Java数据结构和接口397
16.1数据的逻辑结构与物理结构397
16.1.1数据的逻辑结构397
16.1.2数据的物理结构398
16.1.3Java数据结构API400
16.2接口及其应用401
16.2.1Collection接口及其方法401
16.2.2List接口及其实现402
16.2.3Set接口及其实现404
16.3聚集的标准输出406
16.3.1Iterator接口406
16.3.2foreach407
16.4Map接口类及其应用408
16.4.1Map接口的定义与方法408
16.4.2Map.Entry接口408
16.4.3HashMap类和TreeMap类409
习题16411附录413
附录A符号413
A.1Java主要操作符的优先级和结合性413
A.2Javadoc标签413
附录BJava运行时异常类和错误类414
B.1RuntimeException类414
B.2Error类415
附录CJava常用工具包416参考文献418
|
|