内 容 简 介
毋庸置疑,Java是一种优秀的编程语言,从诞生至今一直都很优秀!
尽管Java很优秀,但是对于初次接触编程的人来说并不容易。本书总结了作者多年教学成果,将为初学者打开一扇通往Java世界的大门,使其少走弯路,快速入门,为今后从事相关工作打好坚实的基础。
本书共分16章,主要内容包括:Java语言的发展、特点、运行环境、数据类型、流程控制、面向对象、变量常量、运算符与表达式、注释、选择语句、循环语句、跳转语句、数组和排序、类和对象、静态类、继承、枚举、接口、集合类、泛型、字符串、日期和时间处理、数学类、随机类和异常类、多线程。在应用方面介绍了文件和目录操作、图形界面设计、数据库编程以及多线程。最后,本书使用Java结合MySQL数据库实现了一个餐饮管理系统。
本书可以作为高等院校计算机相关专业Java语言程序设计课程的教材,也可以作为Java程序设计的培训教材,还可以作为自学者的参考书。
前 言
Java是当今非常流行的一种面向对象编程语言。该语言由Sun公司推出,具有跨平台、可移植、分布式、简单、可扩展等诸多特性。现在的Java已不仅仅表示一门程序语言,更是一种软件开发平台,目前已经演化出了J2SE、J2EE、J2ME 3个版本。凭借其易学易用、功能强大等特点,Java可以进行桌面应用、Web应用、分布式及嵌入式系统等应用程序开发,并且在信息技术、科学研究等各个领域都得到了广泛的应用。
随着Java 7的发布,Java平台也增加了很多新的特性。这些新特性,不但可以提高代码质量,而且可以提升工作效率。为了使广大学生和工作者能真正掌握Java 7程序设计技术,领悟Java 7程序设计的快乐和享受到动态语言带来的好处,笔者根据多年的程序开发和Java授课经验,精心编写了本书。本书并不单纯从知识角度来讲解Java 7程序设计,而是从实践和解决开发问题的角度来介绍Java语言。在编写的过程中,注重把Java语言中的重点、难点、要点和编程中常见的问题融合在一起进行讲解。
本书编写思路清晰、内容翔实、案例实用,详细介绍了如何使用Java 7程序设计的方方面面。
本书内容
全书共分16章,主要内容如下。
第1章 Java入门基础。本章介绍Java语言的基础知识,包括概念、特点、发展历史、分支平台以及开发工具等多个内容。
第2章 Java基本语法。本章主要介绍Java语言的基本语法,包括数据类型、类型转换、拆箱、装箱、变量、常量、运算符和表达式以及注释等内容。
第3章 流程控制语句。本章首先简单介绍了算法的描述方式,之后又重点介绍了Java条件语句和循环语句的使用,包括if、switch、for、while、do-while和foreach等。
第4章 Java数组应用。本章主要介绍Java中的数组应用,包括一维数组、二维数组、交错数组和多维数组等内容。此外还介绍了数组排序的几种方法,包括冒泡排序、选择排序、插入排序和快速排序。
第5章 集合处理。本章主要介绍Java中的集合处理,包括集合相关接口、接口类、集合基类Collection、List集合、Set集合、Map集合和泛型的使用。
第6章 字符串处理。本章主要介绍Java中的字符串处理,包括String类操作字符串、StringBuilder类操作字符串和正则表达式操作字符串等多个内容。
第7章 类和对象。本章主要介绍Java中类的应用,包括定义类,创建类的对象、内部类、抽象类以及包的使用等内容。
第8章 面向对象的特征。本章重点介绍Java实现面向对象三大特征的方法,即封装、继承和多态的概念及实现细节。
第9章 Java中的枚举和接口。本章首先对枚举和接口的概念及其语法进行了介绍,然后重点介绍其应用,包括调用枚举类提供的方法、接口的声明与实现等。最后简单介绍了Java中内部类和匿名类的作用。
第10章 Java常用工具类。本章主要介绍Java中的工具类,包括Object类、封装类、Date类以及Calendar类等。
第11章 Java中的异常处理。本章主要介绍程序开发中一些常用的异常以及如何有效地使用异常处理机制。
第12章 Java文件处理。本章详细介绍Java中流的使用,包括流的概念和分类、系统流的使用、输入流和输出流的类结构、字节流和字符流的应用,以及随机访问文件的方法。
第13章 数据库访问对象。本章主要介绍使用JDBC访问数据库的内容,包括JDBC简介、驱动类型、连接数据库的步骤、数据操作对象以及如何遍历查询结果等。
第14章 Swing界面设计编程。本章详细介绍使用Swing设计用户的图形界面,包括创建窗口和面板、布局管理器的使用、按钮、单行和多行文本框、单选按钮和复选框、表格、选择文件以及各种对话框的使用。
第15章 多线程处理。本章主要介绍如何使用Java处理线程,包括创建线程类、实现线程接口、线程的生命周期、线程优先级以及同步等。
第16章 餐饮管理系统。本章讲解如何使用Swing结合MySQL实现餐饮管理系统的过程。包括功能分析、数据库设计、公共模块设计、员工登录、菜谱管理、成本管理以及收银模块。
本书特色
本书中大量内容来自真实的程序范例,使读者能更容易地掌握Java程序设计的开发。本书难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全。
本书紧紧围绕Java语言展开讲解,具有很强的逻辑性和系统性。
实例丰富。
书中各实例均经过作者精心设计和挑选,它们都是根据作者在实际开发中的经验总结而来,涵盖了在实际开发中所遇到的各种问题。
应用广泛。
对于精选案例,给出了详细步骤,结构清晰简明,分析深入浅出,而且有些程序能够直接在项目中使用,避免了读者进行二次开发。
基于理论,注重实践。
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例,或者小型应用程序,通过将理论应用到实践,来加强读者实际应用能力,巩固开发基础和知识。
贴心的提示。
为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下。
提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。
注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。
技巧:通过简短的文字,指出知识点在应用时的一些小窍门。
读者对象
本书适合作为软件开发入门者的自学用书,适合以下人员使用:
Java语言开发入门者。
Java语言的初学者以及在校学生。
各大中专院校的在校学生和相关授课老师。
准备从事与Java语言或J2EE技术相关的人员。
本书由李伟云编著,同时参与本书编写及设计工作的还有侯政云、刘利利、郑志荣、肖进、侯艳书、崔再喜、侯政洪、李海燕、祝红涛、贺春雷等,在此表示感谢。在本书的编写过程中,我们力求精益求精,但难免存在一些不足之处,敬请广大读者批评指正。
编 者
目 录第1章 Java入门基础 11.1 了解Java语言 11.1.1 语言概念 11.1.2 发展历史 21.1.3 语言特点 31.1.4 应用领域 41.1.5 Java 8.0新特性 51.2 平台架构 71.2.1 Java EE 81.2.2 Java SE 81.2.3 Java ME 81.3 开发环境——JDK 81.3.1 下载JDK 81.3.2 安装JDK 101.3.3 配置JDK 111.4 实验指导——开发MyTest程序 121.5 开发工具——MyEclipse 131.5.1 了解MyEclipse 131.5.2 安装MyEclipse 131.6 实验指导——创建第一个Java程序 151.7 习题 18第2章 Java基本语法 192.1 数据类型 192.1.1 数据类型分类 192.1.2 整数类型 202.1.3 浮点型 212.1.4 字符型 222.1.5 布尔类型 222.1.6 引用数据类型 232.2 变量 232.2.1 变量的声明 232.2.2 变量的赋值 242.2.3 变量的作用域 252.3 常量 262.4 基本数据类型转换 262.4.1 自动类型转换 272.4.2 强制类型转换 272.5 运算符和表达式 282.5.1 算术运算符 282.5.2 赋值运算符 292.5.3 关系运算符 302.5.4 逻辑运算符 312.5.5 位运算符 322.5.6 其他运算符 332.5.7 运算符的优先级 352.6 关键字列表 362.7 Java编码规范 362.7.1 代码编写规则 372.7.2 常用代码注释 372.8 实验指导——计算圆的周长和面积 382.9 习题 40第3章 流程控制语句 423.1 算法的描述方式 423.1.1 自然语言 423.1.2 传统流程图 433.1.3 N-S结构化流程图 433.1.4 伪代码 443.2 条件语句 443.2.1 简单的if条件语句 443.2.2 if-else条件语句 453.2.3 if-else if-else条件语句 473.2.4 switch语句 493.2.5 if语句和switch语句的区别 523.2.6 if语句的嵌套 523.3 循环语句 543.3.1 for语句 543.3.2 while语句 553.3.3 do-while语句 573.3.4 foreach语句 593.3.5 死循环 603.3.6 循环的嵌套 613.4 跳转语句 623.4.1 break语句 633.4.2 continue语句 633.4.3 return语句 643.5 实验指导——打印指定行数的杨辉三角 663.6 实验指导——解决与李白喝酒的问题 673.7 习题 68第4章 Java数组应用 714.1 一维数组 714.1.1 声明一维数组 714.1.2 初始化一维数组 724.2 获取一维数组的元素 734.2.1 获取单个元素 734.2.2 获取全部元素 744.3 二维数组 744.3.1 声明二维数组 744.3.2 初始化二维数组 754.4 获取二维数组的元素 764.4.1 获取单个元素 764.4.2 获取全部元素 764.4.3 获取指定行的元素 774.4.4 获取指定列的元素 784.5 多维数组 784.6 实验指导——打印螺旋矩阵 794.7 Arrays类操作数组 814.7.1 数组排序 824.7.2 比较数组 834.7.3 填充数组 834.7.4 查找数组 844.7.5 复制数组 864.8 数组排序方法 884.8.1 冒泡排序法 884.8.2 选择排序法 904.8.3 直接插入法 914.8.4 快速排序法 924.9 习题 93第5章 集合处理 965.1 集合类概述 965.1.1 集合中的接口 965.1.2 接口实现类 975.2 Collection接口 985.3 List集合 1005.3.1 ArrayList类 1005.3.2 LinkedList类 1035.4 Set集合 1055.4.1 HashSet类 1055.4.2 TreeSet类 1065.5 Map集合 1095.6 Collections类 1115.6.1 正向排序 1115.6.2 逆向排序 1135.6.3 填充 1145.6.4 复制 1155.7 实验指导——使用泛型集合 1165.8 习题 118第6章 字符串处理 1206.1 String类概述 1206.2 String类操作字符串 1226.2.1 获取字符串长度 1226.2.2 比较字符串 1226.2.3 替换字符串 1266.2.4 提取字符串 1276.2.5 分割字符串 1296.2.6 连接字符串 1296.2.7 转换字符串 1306.2.8 格式化字符串 1316.2.9 其他操作 1326.3 实验指导——字符串的加密和解密 1346.4 StringBuilder类概述 1356.5 StringBuilder类操作字符串 1366.5.1 追加字符串 1366.5.2 插入字符串 1366.5.3 反转字符串 1376.5.4 替换字符串 1386.5.5 删除字符串 1386.6 正则表达式操作字符串 1396.6.1 元字符 1396.6.2 限定符 1406.6.3 使用元字符和限定符 1416.7 实验指导——正则表达式匹配IP地址 1426.8 实验指导——判断字符是英文还是汉字 1436.9 习题 144第7章 类和对象 1477.1 类 1477.1.1 声明类 1477.1.2 类的成员 1487.1.3 构造方法 1517.1.4 main()方法 1527.2 对象 1527.2.1 创建对象 1527.2.2 使用对象 1537.2.3 销毁对象 1547.3 实验指导——创建和使用类与对象 1547.4 内部类 1557.4.1 成员内部类 1557.4.2 局部内部类 1567.4.3 嵌套内部类 1577.4.4 匿名内部类 1587.5 抽象类 1597.6 this关键字 1617.6.1 构造方法中使用this 1617.6.2 this作为参数 1627.6.3 匿名内部类中使用this 1637.7 包 1647.7.1 系统包 1647.7.2 自定义包 1657.8 实验指导——不同包之间类的使用 1667.9 习题 166第8章 面向对象的特征 1698.1 封装 1698.1.1 了解封装 1698.1.2 实现封装 1708.2 实验指导——通过代码封装Book类并测试 1728.3 继承 1738.3.1 了解继承 1738.3.2 实现继承 1748.3.3 使用super关键字 1768.3.4 使用final关键字 1778.3.5 使用继承的原则 1788.4 实验指导——利用内部类实现多重继承 1808.5 多态 1828.5.1 了解多态 1828.5.2 实现多态 1838.5.3 方法重载 1868.6 习题 189第9章 Java中的枚举和接口 1929.1 枚举 1929.1.1 枚举声明 1929.1.2 枚举类 1939.1.3 为枚举添加方法 1959.1.4 EnumMap与EnumSet 1979.2 接口 1999.2.1 接口概念和意义 1999.2.2 接口声明和继承 1999.2.3 接口实现 2009.2.4 接口回调 2019.2.5 接口和抽象类的区别 2029.3 内部类 2039.3.1 局部内部类 2049.3.2 静态内部类 2059.4 匿名类 2069.5 实验指导——认识动物 2079.6 习题 209第10章 Java常用工具类 21210.1 Object类 21210.2 包装类 21410.2.1 Number类 21410.2.2 Double类与Float类 21410.2.3 与整型有关包装类 21610.2.4 Character类 21710.2.5 Boolean类 21910.3 日期操作类 21910.3.1 Date类 21910.3.2 Calendar类 22110.4 实验指导——日期的高级操作 22310.5 格式化日期类 22510.5.1 DateFormat类 22510.5.2 SimpleDateFormat类 22610.6 数学操作类 22810.6.1 静态常量 22810.6.2 静态方法 22810.7 实验指导——格式化数字 23110.8 随机数类 23310.8.1 随机数的概念 23310.8.2 随机数的算法 23310.8.3 随机数的实现 23310.9 实验指导——根据生成的随机数求最值 23510.10 习题 236第11章 Java中的异常处理 23811.1 什么是异常 23811.2 Java异常类型 23911.3 捕获异常 24111.3.1 异常语句结构 24111.3.2 使用try-catch语句捕获异常 24111.3.3 使用多重catch语句捕获异常 24311.3.4 使用try-catch-finally语句捕获异常 24411.4 自定义异常 24611.5 抛出异常和声明异常 24811.5.1 抛出异常 24811.5.2 声明异常 25011.5.3 throw和throws的区别 25111.6 实验指导——校验购买数量 25211.7 习题 254第12章 Java文件处理 25712.1 Java流简介 25712.1.1 理解输入/输出流 25712.1.2 输入流 25812.1.3 输出流 25912.1.4 系统流 26012.2 字节流应用 26212.2.1 字节数组输入/输出流 26212.2.2 文件字节输入/输出流 26412.2.3 对象输入/输出流 26812.2.4 缓冲区输入/输出流 26912.2.5 数据输入/输出流 27112.2.6 字节打印流 27312.3 字符流应用 27612.3.1 文件字符输入/输出流 27612.3.2 字符缓存区输入/输出流 27912.3.3 字符打印流 28012.4 文件操作 28212.5 随机访问文件 28312.6 实验指导——随机读取商品信息 28512.7 习题 287第13章 数据库访问对象 28913.1 认识数据库 28913.1.1 了解数据库 28913.1.2 数据库分类 29013.2 认识JDBC 29013.2.1 了解JDBC 29113.2.2 了解JDBC API 29113.2.3 JDBC驱动类型 29213.2.4 连接数据库步骤 29313.3 JDBC驱动程序 29413.3.1 加载JDBC驱动程序 29413.3.2 数据库驱动类 29613.4 数据库连接对象 29613.4.1 提供JDBC连接的URL 29613.4.2 创建数据库连接 29713.4.3 数据库连接接口 29813.5 数据操作对象 30113.5.1 Statement对象 30113.5.2 PreparedStatement对象 30313.5.3 CallableStatement对象 30513.6 查询结果集接口 30713.6.1 使用ResultSet 30713.6.2 ResultSet的方法 30813.6.3 ResultSetMetaData对象 31013.7 关闭数据库连接 31213.8 实验指导——操作会员类的数据 31213.9 习题 316第14章 Swing界面设计编程 31914.1 Swing简介 31914.2 容器类组件 32114.2.1 容器组件层次结构 32114.2.2 JFrame窗口 32214.2.3 JPanel面板 32414.3 布局管理器 32514.3.1 边框布局管理器 32514.3.2 流式布局管理器 32714.3.3 卡片布局管理器 32814.3.4 网格布局管理器 32914.3.5 网格包布局管理器 33014.3.6 盒布局管理器 33314.4 基础组件 33414.4.1 按钮组件 33414.4.2 标签组件 33614.4.3 单行文本框组件 33714.4.4 文本域组件 33914.4.5 复选框组件 34014.4.6 单选按钮组件 34114.4.7 下拉列表组件 34214.5 高级组件 34514.5.1 表格组件 34614.5.2 标签面板组件 34714.5.3 树组件 35014.5.4 文件选择器组件 35314.6 对话框 35514.6.1 输入对话框 35514.6.2 消息对话框 35614.6.3 确认对话框 35614.6.4 选项对话框 35714.7 实验指导——制作计算器 35814.8 习题 361第15章 多线程处理 36315.1 多线程 36315.1.1 了解进程 36315.1.2 了解线程 36415.2 创建线程 36415.2.1 使用Thread类 36415.2.2 使用Runnable接口 36815.2.3 两种方法比较 36915.3 线程的生命周期 37015.4 实验指导——生命周期例子演示 37115.5 线程的优先级和执行顺序 37315.5.1 优先级概述 37415.5.2 使用优先级 37415.6 线程同步 37615.7 结束线程 37715.8 习题 377第16章 餐饮管理系统 37916.1 系统分析 37916.1.1 需求分析 37916.1.2 功能分析 38016.1.3 系统功能模块划分 38116.2 数据库设计 38216.2.1 概念设计 38216.2.2 逻辑设计 38316.3 公共模块设计 38616.3.1 数据访问层 38616.3.2 模型类 38916.3.3 工具类 39116.4 登录模块 39116.5 管理员模块设计 39416.5.1 界面设计 39416.5.2 功能切换模块 39516.5.3 人事管理模块 39516.5.4 登录管理模块 39616.5.5 菜谱管理模块 39716.5.6 成本管理模块 39816.5.7 万年历模块 39816.6 收银员模块设计 399习题答案 400