新書推薦:
![利他实验:人类真的只关心自己吗](http://103.6.6.66/upload/mall/productImages/24/28/9787300328836.jpg)
《
利他实验:人类真的只关心自己吗
》
售價:HK$
114.9
![深度对话GPT-4提示工程实战](http://103.6.6.69/upload/mall/productImages/y24/8/9787115643179.jpg)
《
深度对话GPT-4提示工程实战
》
售價:HK$
103.3
![权利的形而上学](http://103.6.6.66/upload/mall/productImages/24/28/9787100172677.jpg)
《
权利的形而上学
》
售價:HK$
78.2
![大模型时代的基础架构:大模型算力中心建设指南](http://103.6.6.66/upload/mall/productImages/24/28/9787121481239.jpg)
《
大模型时代的基础架构:大模型算力中心建设指南
》
售價:HK$
147.2
![暗黑历史书系·伦敦血色历史(从公开处决到隐秘谋杀,伦敦街头奇闻异事录。16开全彩印刷,200余幅精美图片)](http://103.6.6.66/upload/mall/productImages/24/28/9787218175300.jpg)
《
暗黑历史书系·伦敦血色历史(从公开处决到隐秘谋杀,伦敦街头奇闻异事录。16开全彩印刷,200余幅精美图片)
》
售價:HK$
89.7
![鼓楼新悦.家里,容不下暴力: 40位家暴当事人的创伤与疗愈](http://103.6.6.66/upload/mall/productImages/24/27/9787522736020.jpg)
《
鼓楼新悦.家里,容不下暴力: 40位家暴当事人的创伤与疗愈
》
售價:HK$
79.4
![明日世界:未来30年人机不对称共生](http://103.6.6.66/upload/mall/productImages/24/27/9787516838693.jpg)
《
明日世界:未来30年人机不对称共生
》
售價:HK$
78.2
![联动的世界史——19世纪世界中的日本](http://103.6.6.66/upload/mall/productImages/24/26/9787553529738.jpg)
《
联动的世界史——19世纪世界中的日本
》
售價:HK$
66.7
|
編輯推薦: |
本书集Java教程和实验指导与一体,既注重理论知识又结合实践指导。每章末都配有针对本章重要知识点的实践题来巩固所学知识并锻炼学生的动手编程能力,为了引导学生研究出合理的算法和编写出高质量的代码,每章末的实践题都配有针对性的引导提示。本书注重内容的深入,如在介绍静态成员、抽象类和接口时,介绍了它们在设计模式中的应用,并给出了在电子商务网站程序中的应用实例;注重程序的优化、程序代码质量和编程风格;介绍内容时让学生知其然并知其所以然;注重基础知识结合实例讲解,在各章知识的讲解过程中,都会有适当的实例来弥补学生对基础知识抽象理解的空白;注重知识的综合应用,不但给出了某个知识点的实例,而且各章还给出了将各知识点融合起来的综合实例,适应培养应用型人才的需要;实验部分中每个实验分为基本指导和实践练习两部分,学生可以在模仿基本指导程序的基础上进行实践练习创新。
|
內容簡介: |
本书结合精心挑选的实例,由浅入深,详细讲解了Java语言的类与对象、继承与多态、接口、异常处理、Java常用类、集合、泛型、多线程、输入输出、图形用户界面、网络通信、JDBC数据库编程基础。并在讲解知识点的过程中,理论和实例相结合地讲解了几个常用的设计模式的使用,包括单例模式、简单工厂模式、模板方法模式。为了方便教学或自学,本书包含了精心编写的配套的实验指导内容。
|
關於作者: |
赵新慧,男,副教授,汉族,1973年2月出生,现任辽宁石油化工大学计算机与通信工程学院软件工程系教师。承担面向对象程序设计、Java程序设计等程序设计类课程十几年。在《计算机应用研究》、《计算机应用》、《辽宁石油化工大学学报》等核心科技期刊上以第一作者发表论文十八篇。主编了清华大学出版社出版的十一.五规划教材《Visual Basic.NET程序设计教程》、《Java程序设计教程》、《面向对象程序设计教程》和《Web应用程序开发技术》。
|
目錄:
|
第1章Java语言概述21.1Java简介2
1.2Java语言的特性3
1.3Java程序的运行机制4
1.4Java开发工具JDK5
1.4.1JDK的下载和安装5
1.4.2JDK的环境变量配置6
1.4.3使用JDK和文本编辑器编写Java程序8
1.5Eclipse集成开发环境9
1.5.1Eclipse简介9
1.5.2使用Eclipse开发Java程序10
1.6Java控制台输入输出14
1.6.1System类与标准IO流对象14
1.6.2使用println和print方法输出14
1.6.3使用read方法从键盘输入字符14
1.6.4使用Scanner类进行键盘输入15
1.7本章要点16
实践题116
第2章Java编程基础17
2.1Java的数据类型17
2.1.1数据类型概述17
2.1.2Java的数据类型分类18
2.2变量与常量18
2.2.1变量18
2.2.2常量和符号常量19Java程序设计教程及实验指导目录2.3关键字与保留字19
2.4标识符20
2.5Java命名规范20
2.6程序注释21
2.6.1注释方法及格式21
2.6.2注释的原则22
2.7整数类型23
2.7.1字节型23
2.7.2短整型24
2.7.3整型24
2.7.4长整型24
2.8浮点型25
2.8.1单精度浮点型25
2.8.2双精度浮点型25
2.9字符型25
2.10布尔型26
2.11运算符和表达式27
2.11.1算术运算符27
2.11.2关系运算符28
2.11.3逻辑运算符29
2.11.4位运算符29
2.11.5其他运算符31
2.11.6运算符的优先级32
2.11.7基本数据类型的混合运算33
2.12程序控制结构35
2.12.1选择语句35
2.12.2循环语句40
2.12.3break和continue语句43
2.13数组45
2.13.1一维数组45
2.13.2二维数组49
2.13.3数组与foreach语句53
2.13.4Java数组工具类Arrays54
2.14应用实例55
2.14.1整数按序输出55
2.14.2分段函数求值56
2.14.3整数求位数及逆序输出56
2.14.4找出素数并输出57
2.15本章要点58
实践题259
第3章类与对象60
3.1面向对象概述60
3.1.1面向对象的三要素61
3.1.2面向对象的特性63
3.2类和对象64
3.2.1类的定义及构成64
3.2.2对象的生成65
3.2.3对象的使用66
3.2.4对象的清除67
3.3成员方法69
3.3.1成员方法的定义69
3.3.2成员方法的调用69
3.3.3使用return语句返回一个值70
3.3.4getter方法和setter方法71
3.3.5成员方法的参数及传值72
3.3.6方法重载74
3.4构造方法75
3.4.1构造方法的作用和特点75
3.4.2构造方法的使用76
3.4.3构造方法重载77
3.4.4默认构造方法78
3.5this引用78
3.5.1什么是this引用78
3.5.2使用this引用区分对象属性与方法形参79
3.5.3使用this引用调用其他构造方法80
3.5.4使用this引用表示当前对象80
3.6静态成员81
3.6.1静态属性81
3.6.2静态方法82
3.6.3理解main()方法83
3.6.4单例设计模式84
3.7内部类85
3.7.1成员内部类85
3.7.2匿名内部类86
3.8包87
3.8.1理解包的作用87
3.8.2如何创建包88
3.8.3编译使用包的程序88
3.8.4使用import引入包中的类88
3.8.5包的访问控制方式89
3.8.6JDK中常用的包89
3.9字符串类90
3.9.1String类90
3.9.2StringBuffer类94
3.9.3StringBuilder类96
3.10JDK的帮助文档96
3.11类的使用与设计98
3.11.1再论类和对象98
3.11.2类的设计99
3.12应用实例100
3.12.1栈类100
3.12.2信用卡账户类102
3.13本章要点103
实践题3104
第4章继承与多态性105
4.1继承的基本概念105
4.2Java继承的实现107
4.2.1继承的语法107
4.2.2protected访问控制方式109
4.2.3super关键字与子类对象的实例化过程109
4.2.4方法重写111
4.2.5final关键字112
4.3继承与子类型113
4.4抽象类与多态性114
4.4.1抽象类的引入114
4.4.2抽象方法114
4.4.3抽象类的定义115
4.4.4多态性116
4.5继承的使用要点118
4.6instanceof运算符119
4.7Object类121
4.7.1基本作用121
4.7.2主要方法121
4.8基本类型的包装类122
4.9Java接口124
4.9.1Java接口的概念124
4.9.2Java接口的定义124
4.9.3Java接口的实现125
4.9.4Java接口类型的使用125
4.9.5Java接口与多态性126
4.9.6Java接口的深入理解127
4.10注解129
4.10.1注解简介129
4.10.2Java提供的几个基本注解129
4.11应用实例130
4.11.1Java接口的实际应用简单工厂设计模式130
4.11.2抽象类的实际应用模板方法设计模式133
4.12本章要点136
实践题4137
第5章异常处理138
5.1异常概述138
5.2Java的标准异常类139
5.3异常处理机制141
5.3.1异常处理的语句结构141
5.3.2异常的抛出144
5.3.3异常的转发145
5.3.4异常处理的嵌套146
5.3.5使用trywithresource更优雅地关闭资源147
5.3.6异常处理的注意事项147
5.4自定义异常类147
5.5应用实例先进先出(FIFO)队列148
5.6本章要点150
实践题5151
第6章Java常用类152
6.1日期和时间操作类152
6.1.1System类152
6.1.2Date类153
6.1.3Calendar类154
6.1.4DateFormat类和SimpleDateFormat类156
6.2Math类157
6.3Random类158
6.4BigInteger类和BigDecimal类159
6.5正则表达式161
6.5.1认识正则表达式161
6.5.2正则表达式语法162
6.5.3Pattern类和Matcher类164
6.5.4String类对正则表达式的支持166
6.6定时器任务166
6.7Comparable接口和Comparator接口168
6.7.1Comparable接口168
6.7.2Comparator接口169
6.8本章要点170
实践题6170
第7章泛型与集合172
7.1泛型172
7.1.1泛型的引入172
7.1.2泛型概述174
7.1.3泛型类和泛型接口174
7.1.4泛型擦除176
7.1.5泛型通配符176
7.1.6受限泛型177
7.1.7泛型接口的实现方式178
7.1.8泛型方法178
7.2Java集合框架概述179
7.2.1Java集合类的引入179
7.2.2Java集合框架的设计179
7.3Java集合分类181
7.4Collection接口和Iterator接口181
7.5List接口及常用实现类182
7.5.1List接口182
7.5.2ArrayList类和LinkedList类183
7.6Set接口及常用实现类187
7.6.1Set接口187
7.6.2HashSet类和TreeSet类187
7.7Map接口及常用实现类192
7.7.1Map接口192
7.7.2HashMap类和TreeMap类192
7.7.3Properties类195
7.7.4集合工具类Collections类197
7.8应用实例简单通讯录199
7.9本章要点202
实践题7202
第8章多线程203
8.1Java多线程概述203
8.2线程的创建204
8.2.1继承Thread类创建线程204
8.2.2实现Runnable接口创建线程205
8.2.3两种创建线程方法的比较206
8.3线程的状态207
8.4线程操作的相关方法207
8.4.1获取和设置线程名称208
8.4.2线程的休眠209
8.4.3线程暂时释放CPU209
8.4.4线程的优先级210
8.4.5使用join方法211
8.4.6守护线程212
8.5多线程的互斥与同步213
8.5.1临界资源与多线程的互斥访问213
8.5.2使用synchronized关键字解决互斥问题215
8.5.3使用Lock解决互斥问题216
8.5.4集合类对象的互斥访问217
8.5.5多线程的同步218
8.6线程池221
8.7应用实例Web服务器模拟223
8.8本章要点229
实践题8229
第9章Java IO230
9.1流概述230
9.2字节流和字符流231
9.2.1字节流231
9.2.2字符流232
9.3文件操作233
9.3.1File类233
9.3.2文件流类236
9.3.3随机存取文件238
9.3.4使用Scanner类读取文件240
9.4缓冲流242
9.5转换流245
9.6数据流247
9.7对象序列化248
9.7.1对象序列化与Serializable接口248
9.7.2对象流类ObjectInputStream和ObjectOutputStream249
9.7.3对象序列化的注意事项250
9.8应用实例250
9.8.1文件复制250
9.8.2通讯录程序252
9.9本章要点255
实践题9255
第10章图形用户界面257
10.1Swing组件概述257
10.2Swing容器259
10.2.1窗体类JFrame259
10.2.2面板类JPanel260
10.3布局管理器262
10.3.1流式布局管理器262
10.3.2边界布局管理器264
10.3.3网格布局管理器266
10.4事件处理267
10.4.1事件处理机制267
10.4.2事件体系结构271
10.4.3事件监听器接口272
10.4.4事件适配器类273
10.5Swing常用基本组件275
10.6应用实例常用组件的综合实例279
10.7本章要点283
实践题10284
第11章网络编程285
11.1网络编程基础285
11.2Java对网络通信的支持287
11.3基于URL的网络编程287
11.4基于TCP协议的网络编程290
11.4.1InetAddress类290
11.4.2Socket类和ServerSocket类292
11.4.3Socket通信编程步骤292
11.4.4简单Socket通信编程293
11.4.5多线程Socket通信编程295
11.5基于UDP协议的网络编程301
11.5.1DatagramPacket类和DatagramSocket类301
11.5.2发送和接收数据报的步骤302
11.5.3简单数据报通信编程303
11.5.4多线程数据报通信编程306
11.6应用实例网络聊天室309
11.7本章要点316
实践题11317
第二部分实验与课程设计
实验1Java编程基础320
实验2面向对象基础324
实验3Java常用类331
实验4集合与泛型337
实验5多线程341
实验6Java IO 346
实验7图形用户界面设计350
实验8网络编程360
课程设计仿QQ的文字聊天系统366
参考文献370
|
內容試閱:
|
前言
Java程序设计教程及实验指导Java是一门主流的面向对象的程序设计语言,是面向对象程序设计教学的主流语言。本书由有多年教学经验的专业教师编写,分为教程以及实验与课程设计两部分。教程部分从Java最基本的概念、语法入手,深入讲解类与对象、继承与多态、接口、异常处理、Java常用类、泛型、集合、多线程、输入输出、图形用户界面和网络通信。在章节的安排上,适合没有面向对象编程基础的初学者从零开始学习。在注重基础的同时,本书还结合实例深入讲解了一些简单的设计模式,包括单例模式、简单工厂模式和模板方法模式。每章最后都提供有针对性的实践题,其中有一定难度的实践题都提供了编程提示。
在实验与课程设计部分,每个实验分为基本指导和实验题两部分,学生可以在模仿基本指导中程序设计的基础上去做实验题,实现从模仿到创新。其中有一定难度的实验题都提供了编程提示。课程设计是实现一个仿QQ的文字聊天系统,由于对初学者来说难度比较大,所以给出了详细的实现步骤。本书中的所有例题和实验源程序均在JDK 11.0.1和Eclipse 201894.9.0中运行通过。
本书的主要特点如下。
(1) 内容全面,涵盖了Java标准版的绝大部分内容。
(2) 内容涵盖了从Java 7到Java 11更新的基础知识。
(3) 注重内容的深度、程序代码质量和编程风格。
(4) 讲解时注重基础知识与实例相结合,在各章知识的讲解过程中,都会有适当的实例帮助学生克服对抽象的基础知识理解的困难。
(5) 为了理论联系实践,每章最后都提供有针对性的实践题,其中有一定难度的实践题都提供了编程提示。
(6) 注重知识的综合应用,各章中不但给出了某个知识点的实例,而且给出了将各方面知识点融合起来进行应用的综合实例,适合培养应用型人才。
(7) 为了方便教学和自学者动手编程实践,书中包含了精心安排的配套的实验指导和课程设计内容。本书主要由辽宁石油化工大学的赵新慧、李文超编著。参与本书编写的还有石元博、杨妮妮、魏海平、贾银山、刘金义、冯锡炜、李艳杰、王福威、叶成荫、王宏亮、刘恩。
本书参考了一些文献资料和博客文章,在此向相关作者表示衷心的感谢。
由于编著者水平有限,书中难免有不足之处,欢迎大家批评、指正。
Java程序设计教程及实验指导前言
编著者
2019年10月
|
|