前言 IT技术和互联网已经与人类的工作、生活紧密结合在了一起,衣食住行的方方面面似乎都和信息技术、数据传输建立了深度依赖关系,我们现在几乎无法离开计算机或手机独立生活了。计算机的硬件和软件正在深刻地改变着人们的工作方式、生活方式和学习方式,尤其是经历了2020年的新冠疫情,即便是在偏僻山区的农村,人们也开始认识互联网和各种IT技术及概念。人们对计算机和网络的使用主要是通过软件或小程序,从银行的存取款、超市的收银管理、在线上课、在线办公,到出行时的车票购买、绿码申请等都离不开软件或小程序的使用。 如今,大数据和人工智能的浪潮正迅速地朝我们涌来,正在触及和改变着各个行业和生活的许多方面。大数据和人工智能浪潮将比之前的工业革命和信息浪潮更大,触及面更广,给我们的工作和生活带来的变化和影响也更大。 不论是大数据处理、人工智能设计还是传统的计算机软件设计,都是通过程序设计来完成的。程序设计方法主要有两大类,即函数式和对象式,同时市面上有很多程序设计语言,如C语言、C++语言、Java语言、Python语言和Go语言等,这些语言和相应的设计理论是程序员必须学习和掌握的基本知识架构。中国的程序员缺口一直很大,按照高等院校计算机专业的培养目标,应用软件开发、测试或数据处理都是计算机相关专业学生在本科毕业时应具备的基本能力。 目前,应用软件开发主要集中在两个方向: 一个是高端的基于企业级的分布式程序的开发和部署,包括大数据的分析和处理; 另一个是面向手机、PDA等嵌入式设备的程序开发,不论哪一个都和网络分不开。Java语言在这些领域都有非常流行和成熟的开发框架和技术,在计算机语言的排行榜上,Java语言已经连续十几年排在第一名或第二名的位置,正因为如此,Java语言已经成为高等学校计算机相关专业的基础专业课程。 本书首先通过很形象的游戏示例引出了指令、程序和进程的基本定义,介绍了Java语言的基础内容和编程的基本思路,然后通过精心设计的示例程序解释了面向对象的几大基本原理,即抽象、封装、继承、多态和组合的概念和设计技巧。本书针对计算机相关专业方面的本科、专科、中职学生编写,在内容的选择上都进行了适当的考虑。 全书共分12章,第1章主要介绍了程序的定义和程序设计语言的概述,通过抽象将计算机程序的概念推广到生命领域、军事领域,指出了指令、程序和进程的关系,给出了进程和能量依赖关系,最后介绍了Java程序的开发环境和开发步骤等; 第2章重点讲述了JVM工作原理、Java语言的关键字、基本数据类型和程序的控制结构等内容; 第3章、第4章主要讲述了面向对象程序设计的基本原理以及Java语言的实现,主要涉及类、对象、接口、继承、方法等面向对象基本概念,通过程序示例演示了如何抽象类,以及设计类和接口的一般规则,所以第2~4章应该是学习的重点; 第5章介绍了Java语言中的异常处理技术以及Java中的异常类库; 第6章讲解了在Java中怎样使用输入/输出流技术,介绍了Java语言中常用的I/O流类库和一些基本方法; 第7章简要介绍了Java的GUI程序设计,通过一些实例程序演示了常用的GUI组件和容器的使用技巧,特别介绍了AWT与Swing的区别和使用时应注意的事项; 第8章讲述了目前广为流行的线程技术以及相关的类和接口,特别介绍了同步、死锁等概念并通过相关的例子来演示; 第9章主要介绍了在Java语言中如何实现网络编程,讲述了套接字编程的基本原理,通过示例演示了开发C/S网络程序的技巧和规则; 第10章讲述了Java语言中的数据集合抽象,介绍了Java中常用的集合框架类和接口以及泛型的使用技巧,在实际的软件开发中需要大量地使用该章中的内容; 第11章讲述了Java语言中的数据库编程技术,介绍了JDBC的相关概念和使用技术,并通过示例演示了基本的数据库程序设计原则,建议读者重点学习第9~11章,以便尽快掌握实用软件的开发技术和原则; 第12章介绍了JSP技术基础,JSP技术是Java语言的主要领地,是基于互联网的Web程序设计领域中的主流技术,建议读者自主学习。 本书特色 (1) 以指令、程序、进程定义为入手点,对程序的本质进行深入的定义和解释。 (2) 对Java面向对象理论和技术进行了深入浅出地解释和代码演示。 (3) 结合仿真和建模的思想与知识点,给出一系列的程序建模实例。 (4) 程序代码实例丰富,涵盖200个知识点案例和17个程序建模实例。 (5) 语言简明易懂,由浅入深地带您学会 Java语言和面向对象程序设计理论。 配套资源 为便于教学,本书配有1500分钟微课视频、源代码、教学课件、教学大纲、教学进度表、习题题库、考试试卷及答案。 (1) 获取教学视频方式: 读者可以先扫描本书封底的文泉云盘防盗码,再扫描书中相应的视频二维码,观看教学视频。 (2) 其他配套资源可以扫描本书封底的“书圈”二维码下载。 读者对象 本书主要面向全国高等院校需要学习面向对象技术或Java程序设计的学生或专业人员,也可以作为从事高等教育的教师,高等院校的本科生、研究生及相关领域的广大科研人员的参考资料。 由于时间仓促,加上作者水平有限,书中难免出现粗浅疏漏或叙述欠严密之处,恳请读者 给予批评指正。 Java语言面向对象程序设计(第3版·微课视频版) 作者 2022年1月