Java语言程序设计(第3版)
定 价:79.9 元 本教材已被 1 所学校申请过!
丛书名:清华大学计算机系列教材
本书将Java语言作为大学生计算机程序设计的入门语言,其特色是内容全面、深入浅出、立体配套。书中详细介绍了Java语言以及面向对象的设计思想和编程方法、图形用户界面的编程方法、网络和数据库程序的编程方法、线程的使用、Java集合框架、Java工程化开发等实用技术。全书以面向对象的程序设计方法贯穿始终,基础性和实用性并重。宗旨是不仅使读者掌握Java语言,而且能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述。本书适合作为高等院校Java语言程序设计课程的教材或Java爱好者入门的自学教材。
全书以面向对象的程序设计方法贯穿始终,基础理论和工程实践并重。宗旨是:不仅要使读者掌握Java语言,而且要能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述,要有基本的工程实践能力。
一、 版次说明本书第1版于2005年出版,第2版于2011年6月出版。本版是在第2版的基础上,广泛听取了读者和同行的建议,参考了的资料,并根据作者本人在授课过程中的经验而形成的。二、 本书的作者及编写背景这是一本面向广大初学者的入门教材,是《C 语言程序设计》的姊妹篇。《C 语言程序设计》一书自1999年第1版出版以来,已经出版了5版,在清华大学等300多所大学的不同专业中使用,取得了良好的教学效果。与《C 语言程序设计》一样,本书同样是基于作者多年来在清华大学讲授Java语言程序设计的经验,以及作者本人的研究和开发经验编写的。Java语言是应用广泛的面向对象的程序设计语言之一。面向对象的程序设计方法将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体对象。对同类型对象抽象出其共性,形成类。这样,程序模块间的关系简单,程序模块的独立性、数据的安全性具有良好的保障,通过继承与多态性,使程序具有很高的可重用性,使得软件的开发和维护都更为方便。面向对象方法的出现,实际上是程序设计方法发展的一个返璞归真过程。软件开发从本质上讲,就是对软件所要处理的问题域进行正确的认识,并把这种认识正确地描述出来。面向对象方法所强调的基本原则,就是直接面对客观存在的事物进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。由于面向对象方法的突出优点,目前它已经成为开发大型软件时所采用的主要方法。除了面向对象以外,Java语言的另一个突出特点是与平台无关,可以实现一次编写、各处运行。因此,Java被广泛用于网络应用程序开发,以及各种电器设备的嵌入式系统。从语法上看,Java语言与C 语言一样,都是以C语言的语法为基础。那么,学习Java语言是否应该首先学习C语言呢?不是的,虽然Java语言借鉴了C语言的语法,但是Java本身是一个完整的程序设计语言,而且它与C语言的程序设计思想是完全不同的。因此,Java语言是可以作为程序设计的入门语言来学习的,这正是本书的定位。学习本书并不要求读者有C语言基础,但是有一定基础的读者学习起来会感觉更容易。三、 本书的特色本书的特色是内容全面、深入浅出、立体配套。本书将Java语言作为大学生的计算机程序设计入门语言,不仅详细介绍语言本身,而且介绍面向对象的设计思想和编程方法、图形用户界面的编程方法、网络和数据库程序的编程方法、线程的使用、Java集合框架等实用开发技术。全书以面向对象的程序设计方法贯穿始终,基础性和实用性并重。宗旨是: 不仅使读者掌握Java语言本身,而且要能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述,并掌握基本的工程开发技术。当然,要达到能够描述较复杂的问题域还需要学习面向对象的软件工程课等其他课程。针对初学者和自学读者的特点,本书力求做到深入浅出,将复杂的概念用简洁浅显的语言娓娓道来。读者还可以通过配套的《Java语言程序设计(第3版)学生用书》,在实践中达到对内容的深入理解和熟练掌握。为了方便教师备课,本书配有教师参考资料,包括电子教案(PPT文件)、教学要点、考试样题等。四、 内容摘要第1章Java语言基础知识: 作为全书的开篇,本章首先介绍面向对象程序设计的基本概念和Java语言的特点;通过几个简单而典型的例子使读者对Java程序有个感性认识;然后详细介绍Java的基本数据类型和表达式;讲解数组的概念、创建和引用;后介绍控制流程。第2章类与对象的基本概念: 主要介绍类与对象的基本概念、类的声明、对象的生成与销毁、枚举类型,后简要介绍了注解。第3章类的重用: 介绍与类的重用有关的内容,包括类的继承、Object类、final类与final方法、抽象类、泛型、类的组合,以及Java包的应用。第4章接口与多态: 介绍Java的接口、多态的概念及实现方法。第5章异常处理与输入输出流: 概要介绍了异常处理机制、基本的输入输出流类,重点介绍常用的文件读写方式。第6章集合框架: 概要介绍Java的集合框架,并对常用的集合类进行详细介绍。第7章图形用户界面: 介绍Swing的基础和主要特点、使用方法,容器的层次结构,布局管理,以及如何在Java Application和Java Applet中引入图形用户界面。第8章多线程编程: 介绍线程的概念,以及如何创建和使用线程等问题。第9章JDBC编程: 首先介绍数据库的基本概念,以及基本SQL语句的使用,然后介绍在Java程序中如何实现对数据库的操作,后介绍Java 自带数据库Java DB的操作。第10章Servlet程序设计: 首先对与网络相关的概念进行简单讲解,然后简单介绍Java语言Servlet程序的开发方法。第11章JSP程序设计: 介绍JSP的基本概念和语法、JSP与JavaBean的结合、标签库的应用,以及Web应用程序的MVC架构、Web服务相关内容。第12章Java工程化开发概述: 介绍Java工程化开发过程、开发环境和工具,带领读者通过案例学习如何运用理论知识解决实际问题。五、 使用指南及相关资源作者本人使用本书授课时的讲课学时数为32学时,实验学时数为32学时,课外上机学时数为32学时,课内外共96学时,每学时45分钟。与本书配套的教材有: 《Java语言程序设计(第3版)学生用书》、电子版教师资源。本书内容是在第2版基础上修订的,在此感谢参与编写第1版、第2版的作者马素霞、王行言、杜彬、廖学良、刘兆宏、李超、李玉山、徐骏、许磊、张超、张新钰、王朝卿,以及参与本书修订工作的胡家威。感谢读者选择使用本书,欢迎您对本书内容提出意见和建议。作者的电子邮件地址是zhengli@mail.tsinghua.edu.cn,来信标题请包含Java book。本书的读者可以登录学堂在线(http://www.xuetangx.com/)学习作者讲授的国家精品在线开放课程Java程序设计。
作者2021年1月 于清华大学
郑莉,清华大学计算机科学与技术系教授;主讲MOOCC 语言程序设计、Java程序设计;国家精品资源共享课负责人;全国高等学校计算机教育研究会副理事长;全国高等院校计算机基础教育研究会副会长;全国信息技术标准化技术委员会教育技术分技术委员会秘书长。主要研究方向:计算机教育、教育信息化、软件工程,主持和参加多项国家863、支撑计划课题和教育部课题。主编出版教材20余部,其中《C 语言程序设计》获教育部自然科学奖和精品教材称号。《C 语言程序设计》、《Java语言程序设计》(本MOOC配套教材)为十二五普通高等教育本科规划教材起草教育信息化相关国家标准5部、国际标准1部。获教学成果奖、北京市教学成果奖、教育部自然科学奖、教育部科技进步奖、北京市科技进步奖、电子学会科技进步奖等9项、教育部、北京市奖励。
第1章Java语言基础知识11.1Java语言与面向对象程序设计简介11.1.1面向对象的程序设计思想11.1.2Java语言发展简史31.1.3Java语言的特点41.1.4Java程序运行机制51.2Java程序概述51.2.1搭建Java程序开发环境51.2.2个Java程序: Hello Java61.3基本数据类型与表达式61.3.1变量与常量71.3.2基本数据类型81.3.3运算符与表达式101.3.4类型转换131.4数组141.4.1数组的声明151.4.2数组的创建151.4.3数组元素的初始化161.4.4数组的引用161.4.5多维数组181.5控制流程201.5.1if选择结构211.5.2switch选择结构231.5.3for循环241.5.4while语句251.5.5dowhile语句261.5.6break语句261.5.7continue语句281.6本章小结30习题30第2章类与对象的基本概念322.1面向对象的程序设计方法概述322.1.1抽象322.1.2封装332.1.3继承332.1.4多态332.2类与对象342.2.1类的声明352.2.2对象的声明与引用362.2.3数据成员372.2.4方法成员422.2.5包的概念482.2.6类的访问控制512.2.7类成员的访问控制512.3对象初始化和回收542.3.1构造方法542.3.2内存回收技术572.4枚举类型582.4.1枚举类型的默认方法592.4.2枚举类型的自定义属性和方法592.5应用举例602.5.1声明BankAccount类602.5.2声明toString方法622.5.3声明存取款方法632.5.4格式化输出字符串642.5.5使用静态工厂方法生成实例642.5.6声明类变量652.6注解672.6.1注解应用举例682.6.2自定义注解692.6.3元注解简介702.6.4注解的处理712.7本章小结72习题72第3章类的重用743.1类的继承743.1.1继承的概念743.1.2继承的语法753.1.3隐藏和覆盖783.1.4有继承时的构造方法823.1.5应用举例833.2Object类843.2.1相等与同一853.2.2Object类中的equals方法863.2.3equals方法的覆盖863.3final类与final方法883.3.1final类883.3.2final方法893.4抽象类913.4.1抽象类的声明913.4.2抽象方法923.5泛型933.5.1泛型的概念933.5.2通配符泛型和有限制的泛型963.6类的组合983.6.1组合的语法983.6.2组合与继承的比较993.6.3组合与继承的结合1003.7包的应用1023.7.1Java基础类库概述1033.7.2自定义包1133.7.3JAR文件1143.8本章小结117习题117第4章接口与多态1194.1接口1194.1.1接口的作用及语法1194.1.2实现接口1214.1.3函数式接口与Lambda表达式1244.1.4实现多个接口1284.1.5接口的扩展1304.1.6接口的默认方法与静态方法1314.1.7接口的私有方法1344.2类型转换1354.2.1类型转换的概念1354.2.2类型转换的应用1364.2.3方法的查找1374.3多态的概念1384.3.1多态的目的1394.3.2绑定的概念1404.4多态的应用1424.5构造方法与多态1454.5.1构造方法的调用顺序1464.5.2构造方法中的多态方法1494.6本章小结151习题151第5章异常处理与输入输出流1525.1异常处理机制简介1525.1.1异常处理概述1525.1.2错误的分类1535.2异常的处理1555.2.1声明抛出异常1555.2.2捕获异常1565.2.3生成异常对象1615.2.4自定义异常类1615.3输入输出流1635.3.1输入输出流的概念1635.3.2预定义的I/O流类概述1645.3.3I/O异常1675.4文件读写1695.4.1写文本文件1695.4.2读文本文件1715.4.3写二进制文件1745.4.4读二进制文件1775.4.5File类1805.4.6处理压缩文件1815.4.7对象序列化1865.4.8随机文件读写1885.5本章小结190习题191第6章集合框架1926.1集合框架概述1926.2集合框架中的主要接口1926.3集合框架中的常用类1966.3.1HashSet1966.3.2Vector和ArrayList1986.3.3LinkedList2036.3.4HashTable和HashMap2046.4集合的操作2136.4.1集合的遍历2136.4.2使用Collections类生成常用集合2156.4.3使用Collections类进行集合操作2166.4.4数组实用方法2176.5流式API2186.5.1流式API介绍2186.5.2流的获取2186.5.3流的操作2196.6本章小结222习题223第7章图形用户界面2247.1绘图2247.1.1图形环境和图形对象2247.1.2颜色和字体2247.1.3使用Graphics类绘图2257.1.4使用Graphics2D类绘图(Java2D API)2287.2Swing基础2287.2.1JFC与Swing2287.2.2Swing与AWT2297.2.3在Application中应用Swing2307.3Swing的特点和概念2317.3.1Swing的组件和容器层次2317.3.2布局管理2347.3.3事件处理2477.4Swing组件2527.4.1顶层容器2527.4.2中间容器2557.4.3原子组件2627.5其他Swing特性2757.5.1Action对象2757.5.2边框2777.5.3设置外观和感觉2787.5.4应用线程2797.5.5定时器2817.6桌面API2827.7本章小结286习题287第8章多线程编程2888.1多线程编程基础2888.1.1线程的概念2888.1.2Thread类2888.1.3Runnable接口2928.1.4线程间的数据共享2948.1.5多线程的同步控制2978.1.6线程之间的通信3038.1.7后台线程3058.2线程的生命周期3078.2.1线程的几种基本状态3078.2.2死锁问题3088.2.3控制线程的生命3118.3线程的优先级3128.4常用接口与实现类3158.4.1Executor接口3168.4.2ExecutorService接口3178.4.3ThreadPoolExecutor类3198.4.4ScheduledThreadPoolExecutor类3238.5本章小结324习题324第9章JDBC编程3269.1数据库基础知识3269.1.1数据库技术的特点3269.1.2数据模型3279.1.3关系表中的主键与外键3289.1.4建立一个实例数据库3299.1.5SQL简介3339.2通过JDBC访问数据库3359.2.1设置环境3379.2.2建立连接3389.2.3对数据库进行操作3399.2.4执行带参数的SQL语句3499.3Java DB3499.4本章小结352习题352第10章Servlet程序设计35310.1Java网络程序设计的基本概念35310.1.1网络协议35310.1.2统一资源标识符URI35410.1.3基于套接字的有连接通信35510.1.4数据报通信35610.1.5Servlet35810.2Servlet基础35810.2.1Servlet容器、Web服务器、应用服务器35810.2.2Tomcat的配置与使用36010.2.3Web应用程序36210.2.4Servlet API36310.2.5Servlet的基本结构36310.2.6Servlet编译36410.3Servlet的生命周期36510.3.1初始化Servlet36510.3.2销毁Servlet36610.4与客户端交互36610.4.1提取Servlet信息36610.4.2提取服务器信息36810.4.3提取客户端信息36810.4.4发送HTML信息37110.5客户端跟踪37210.5.1使用Cookie37210.5.2使用Session37510.6协作与通信37710.7程序举例37910.8本章小结383习题384第11章JSP程序设计38511.1JSP简介38511.1.1什么是JSP程序38511.1.2JSP语法概述38711.1.3JSP内置对象39111.1.4一个简单的JSP程序39411.2JSP与JavaBean39811.2.1JavaBean简介39811.2.2在JSP程序中使用JavaBean39911.3JSP标签库40311.3.1标签处理类40311.3.2标签库描述文件40411.3.3在JSP程序中使用标签40511.3.4自定义标签库40511.4JSP与Servlet40811.4.1Web应用程序的一般结构40811.4.2JSP与Servlet间的信息共享40911.4.3JSP与Servlet间的控制传递41111.4.4Web应用程序举例41211.5Web服务41911.5.1Web服务的开发41911.5.2Web服务的使用42111.6本章小结422习题422第12章Java工程化开发概述42312.1项目需求42312.2开发环境42412.2.1使用Git进行版本控制42412.2.2使用Maven进行项目构建42712.2.3使用IntelliJ IDEA进行Java开发43112.3项目开发框架43312.4核心模块的开发43912.4.1模块的功能设计43912.4.2业务服务接口的开发43912.4.3数据库存取程序的开发44112.4.4展现程序的开发44812.5单元测试与集成测试44912.5.1对Spring Boot应用进行单元测试45012.5.2对Spring Boot应用进行集成测试45312.6本章小结456习题457
平台介绍|荣誉资质|联系我们|出版社登陆