图书前言

前    言

  Java语言具有纯粹的面向对象的特点,非常适合于面向对象程序设计的学习。本书面向有一定的程序设计语言基础的读者,全面介绍Java语言的面向对象编程与设计技术,实用性强。在第1版的基础上,本书基于Java语言新引入的特性,结合作者近20年的Java面向对象程序设计课程的教学经验和工程实践基础,对教材内容进行了补充、修订和编写。本书增加了Java语言的一些如switch表达式、Lambda表达式等新特性介绍,同时也增加了如数据库访问、使用第三方类库等应用开发中的实用技术的讲解。全书内容共分12章。

  第1章概述了Java发展、平台、开发环境,从实例程序出发介绍Java语言的基本语法,包括标识符与关键字、数据类型、变量与赋值、运算符与表达式、枚举类型、流程控制语句等。

  第2章从面向对象的概念出发,描述了类和对象在Java语言中的实现,介绍了类的封装、方法重载、类成员和实例成员、包的基本概念及UML类图等技术。

  第3章介绍面向对象程序设计的继承和多态两个重要特征。描述了Java语言中类继承的实现、类中成员的访问权限控制、抽象类和接口、多态及设计模式。

  第4章介绍Java的数组和字符串编程,包括数组创建、数组初始化、数组相关操作、多维数组、可变长参数、字符串、命令行参数等内容。

  第5章讲解泛型与集合框架,泛型编程技术包括泛型类、泛型方法、泛型类的继承、通配符的使用等相关技术;集合框架包括集合核心接口、具体实现类和集合算法等内容。

  第6章介绍Java的异常处理,包括异常机制、处理方法、自定义异常类及其使用、断言及日志机制。

  第7章描述Java多任务编程,包括线程的概念、实现、控制、同步、线程池、死锁等内容。

  第8章讲述Java的输入/输出处理,包括流的概念、字节流、字符流、命令行I/O、格式化I/O、对象序列化、文件I/O等的应用。

  第9章讲解基于Swing的GUI编程,包括容器、组件、布局管理器、事件处理和多媒体处理等内容。

  第10章介绍Java的网络编程技术,包括网络编程基本概念、Java网络相关类、TCP通信、UDP通信、使用URL进行网络通信的方法,以及与服务器端交互等具体应用。

  第11章介绍Java访问数据库的编程技术,包括SQL语言基础、JDBC、使用SQLite数据库等的具体应用。

  第12章介绍使用第三方类库的编程技术,包括Maven构建工具的使用、常用的第三方类库、通过第三方类库实现JSON数据操作、生成统计图、处理Word文件等实用性应用功能的开发。

  本书定位于面向对象程序设计的教学,因此对Java语言中相关特性做了取舍。例如,函数式编程仅引入了Lambda表达式,并未展开对StreamAPI、函数式接口等内容的描述;对于Java的反射、正则表达式、JavaFX等内容也基本没有涉及。

  本书第2、3、7、8、9章由马迪芳编写和修订,第1、4、5、6、10、11、12章由陈旭东编写和修订。徐保民和魏小涛对本书内容提出了建设性的意见并参与了相关案例的选择和代码的调试。全书由陈旭东负责定稿。

  本书的出版得到了北京交通大学出版社谭文芳老师的大力支持,北京交通大学软件学院、计算机与信息技术学院相关课程的老师也为本书的编写提出了建议,在此表示深深的谢意。特别感谢北京交通大学软件学院教学指导委员会和软件工程教研室的各位老师对编者提供的支持和帮助。

  本书内容可能存在不足和错误,恳请各位读者不吝赐教。作者联系的电子邮箱为:chenxd@bjtu.edu.cn(陈旭东)和dfma@bjtu.edu.cn(马迪芳)。

  

  编  者

  2021年9月

     

  

     

  

 II

  

  

  VII

  

  

     

  

  I