Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言。
Java已成为网络时代最重要的语言之一。本书注重结合实例以及重要的设计模式,循序渐进地向读者介绍了Java面向对象编程的重要知识。针对较难理解的问题,所列举例子都是由简到繁,便于读者掌握Java面向对象编程的思想。全书分为17章,分别讲解了基本数据类型、枚举和数组、运算符、表达式和语句、类、对象和接口、面向对象的几个基本原则、重要的设计模式、常用实用类、Java Swing图形用户界面、对话框、Java输入/输出流、泛型与集合框架、JDBC数据库操作、Java多线程机制、Java网络基础以及Java Applet等内容。 本书适合作为高等院校计算机专业Java语言程序设计以及面向对象语言课程的教材。
目录
- 第1章Java入门
- 1.1Java的地位
- 1.1.1网络地位
- 1.1.2语言地位
- 1.1.3需求地位
- 1.2Java的特点
- 1.2.1简单
- 1.2.2面向对象
- 1.2.3与平台无关
- 1.2.4多线程
- 1.2.5安全
- 1.2.6动态
- 1.3安装JDK
- 1.3.13种平台简介
- 1.3.2安装Java SE平台
- 1.4Java程序的开发步骤
- 1.5简单的Java应用程序
- 1.5.1源文件的编写与保存
- 1.5.2编译
- 1.5.3运行
- 1.6Java应用程序的基本结构
- 1.7注释
- 1.8编程风格
- 1.8.1Allmans风格
- 1.8.2Kernighan风格
- 1.9Java之父——James Gosling
- 1.10小结
- 习题1
- 第2章基本类型、数组和枚举类型
- 2.1标识符和关键字
- 2.1.1标识符
- 2.1.2关键字
- 2.2基本数据类型
- 2.2.1逻辑类型
- 2.2.2整数类型
- 2.2.3字符类型
- 2.2.4浮点类型
- 2.2.5基本数据类型的转换
- 2.3从命令行输入与输出数据
- 2.3.1输入基本型数据
- 2.3.2输出基本型数据
- 2.4数组
- 2.4.1声明数组
- 2.4.2创建数组
- 2.4.3数组元素的使用
- 2.4.4length的使用
- 2.4.5数组的初始化
- 2.4.6数组的引用
- 2.4.7数组的表示格式
- 2.4.8复制数组
- 2.4.9排序与使用二分法查找
- 2.5枚举类型
- 2.6小结
- 习题2
- 第3章运算符、表达式和语句
- 3.1运算符与表达式
- 3.1.1算术运算符与算术表达式
- 3.1.2自增、自减运算符
- 3.1.3算术混合运算的精度
- 3.1.4关系运算符与关系表达式
- 3.1.5逻辑运算符与逻辑表达式
- 3.1.6赋值运算符与赋值表达式
- 3.1.7位运算符
- 3.1.8instanceof 运算符
- 3.1.9运算符综述
- 3.2语句概述
- 3.3条件分支语句
- 3.3.1if语句
- 3.3.2ifelse语句
- 3.3.3ifelse ifelse 语句
- 3.4开关语句
- 3.5循环语句
- 3.5.1for循环语句
- 3.5.2while 循环语句
- 3.5.3dowhile循环语句
- 3.6break和continue语句
- 3.7数组与for语句
- 3.8枚举类型与for、switch语句
- 3.9小结
- 习题3
- 第4章类与对象
- 4.1编程语言的几个发展阶段
- 4.1.1面向机器语言
- 4.1.2面向过程语言
- 4.1.3面向对象语言
- 4.2类
- 4.2.1类的声明
- 4.2.2类体
- 4.2.3成员变量和局部变量
- 4.2.4方法
- 4.2.5方法重载
- 4.2.6构造方法
- 4.2.7类方法和实例方法
- 4.2.8几个值得注意的问题
- 4.3对象
- 4.3.1创建对象
- 4.3.2使用对象
- 4.3.3对象的引用和实体
- 4.4参数传值
- 4.4.1基本数据类型参数的传值
- 4.4.2引用类型参数的传值
- 4.4.3可变参数
- 4.4.4有理数的类封装
- 4.5对象的组合
- 4.6static关键字
- 4.6.1实例变量和类变量的区别
- 4.6.2实例方法和类方法的区别
- 4.7this关键字
- 4.7.1在构造方法中使用this
- 4.7.2在实例方法中使用this
- 4.8包
- 4.8.1包语句
- 4.8.2有包名的类的存储
- 4.8.3运行有包名的主类
- 4.9import语句
- 4.9.1引入类库中的类
- 4.9.2引入自定义包中的类
- 4.9.3使用无包名的类
- 4.9.4避免类名混淆
- 4.10访问权限
- 4.10.1私有变量和私有方法
- 4.10.2公有变量和公有方法
- 4.10.3友好变量和友好方法
- 4.10.4受保护的成员变量和方法
- 4.10.5public类与友好类
- 4.11基本数据类型的类封装
- 4.11.1Double和Float类
- 4.11.2Byte、Short、Integer和Long类
- 4.11.3Character类
- 4.11.4自动装箱与拆箱
- 4.12反编译器和文件生成器
- 4.12.1使用反编译器
- 4.12.2使用文件生成器
- 4.13JAR文件
- 4.14小结
- 习题4
- 第5章继承与接口
- 5.1子类与父类
- 5.2子类的继承性
- 5.2.1子类和父类在同一包中的继承性
- 5.2.2子类和父类不在同一包中的继承性
- 5.2.3protected的进一步说明
- 5.3子类对象的构造过程
- 5.4成员变量的隐藏和方法重写
- 5.4.1成员变量的隐藏
- 5.4.2方法重写
- 5.5super关键字
- 5.5.1使用super调用父类的构造方法
- 5.5.2使用super操作被隐藏的成员变量和方法
- 5.6final关键字
- 5.6.1final类
- 5.6.2final方法
- 5.6.3常量
- 5.7对象的上转型对象
- 5.8继承与多态
- 5.9abstract类和方法
- 5.9.1abstract类的特点
- 5.9.2abstract类与多态
- 5.10接口
- 5.10.1接口的声明与使用
- 5.10.2理解接口
- 5.10.3接口回调
- 5.10.4接口与多态
- 5.10.5abstract类与接口的比较
- 5.11小结
- 习题5
- 第6章内部类与异常类
- 6.1内部类
- 6.2匿名类
- 6.2.1和类有关的匿名类
- 6.2.2和接口有关的匿名类
- 6.3异常类
- 6.3.1trycatch语句
- 6.3.2自定义异常类
- 6.4finally子语句
- 6.5断言语句
- 6.6小结
- 习题6
- 第7章面向对象设计的基本原则
- 7.1UML类图简介
- 7.1.1类的UML图
- 7.1.2表示接口的UML图
- 7.1.3泛化关系
- 7.1.4关联关系
- 7.1.5依赖关系
- 7.1.6实现关系
- 7.1.7注释
- 7.2面向抽象原则
- 7.2.1抽象类和接口
- 7.2.2面向抽象
- 7.3开闭原则
- 7.4多用组合、少用继承原则
- 7.4.1继承与复用
- 7.4.2组合与复用
- 7.4.3组合与继承
- 7.5高内聚低耦合原则
- 7.6小结
- 习题7
- 第8章设计模式
- 8.1设计模式简介
- 8.1.1什么是设计模式
- 8.1.2学习设计模式的必要性
- 8.1.3什么是框架
- 8.1.4模式的分类
- 8.2策略模式
- 8.2.1策略模式的结构
- 8.2.2策略模式的使用
- 8.2.3策略模式的优点
- 8.2.4适合使用策略模式的情景
- 8.2.5策略模式相对继承机制的优势
- 8.3访问者模式
- 8.3.1访问者模式的结构
- 8.3.2访问者模式的使用
- 8.3.3双重分派
- 8.3.4访问者模式的优点
- 8.3.5适合使用访问者模式的情景
- 8.4装饰模式
- 8.4.1装饰模式的结构
- 8.4.2装饰模式的使用
- 8.4.3使用多个装饰者
- 8.4.4装饰模式相对继承机制的优势
- 8.4.5装饰模式的优点
- 8.4.6适合使用装饰模式的情景
- 8.5适配器模式
- 8.5.1适配器模式的结构
- 8.5.2适配器模式的使用
- 8.5.3适配器的适配程度
- 8.5.4单接口适配器
- 8.6工厂方法模式
- 8.6.1工厂方法模式的结构
- 8.6.2工厂方法模式的使用
- 8.7小结
- 习题8
- 第9章常用实用类
- 9.1String类
- 9.1.1构造字符串对象
- 9.1.2String类的常用方法
- 9.1.3字符串与基本数据的相互转化
- 9.1.4对象的字符串表示
- 9.1.5字符串与字符、字节数组
- 9.1.6正则表达式及字符串的替换与分解
- 9.2StringBuffer类
- 9.2.1StringBuffer对象的创建
- 9.2.2StringBuffer类的常用方法
- 9.3StringTokenizer类
- 9.4Scanner类
- 9.5Date和Calendar类
- 9.5.1Date类
- 9.5.2Calendar类
- 9.5.3日期的格式化
- 9.5.4不同区域的星期格式
- 9.6Math、BigInteger和Random类
- 9.6.1Math类
- 9.6.2BigInteger类
- 9.6.3Random类
- 9.7DecimalFormat类
- 9.7.1格式化数字
- 9.7.2将字符串转化为数字
- 9.8Pattern与Match类
- 9.8.1模式对象
- 9.8.2匹配对象
- 9.9Class类
- 9.9.1使用Class实例化一个对象
- 9.9.2获取类的有关信息
- 9.10小结
- 习题9
- 第10章Java Swing
- 10.1Java Swing概述
- 10.2窗口
- 10.2.1JFrame常用方法
- 10.2.2菜单条、菜单、菜单项
- 10.3常用组件、容器与布局
- 10.3.1常用组件
- 10.3.2常用容器
- 10.3.3常用布局
- 10.4处理事件
- 10.4.1事件处理模式
- 10.4.2ActionEvent事件
- 10.4.3ItemEvent事件
- 10.4.4DocumentEvent事件
- 10.4.5MouseEvent事件
- 10.4.6焦点事件
- 10.4.7键盘事件
- 10.4.8窗口事件
- 10.4.9用匿名类实例或窗口做监视器
- 10.4.10事件的总结
- 10.5使用MVC结构
- 10.6树组件与表格组件
- 10.6.1树组件
- 10.6.2表格组件
- 10.7将按钮绑定到键盘
- 10.8使用中介者模式
- 10.9发布GUI程序
- 10.10小结
- 习题10
- 第11章对话框
- 11.1JDialog类
- 11.1.1JDialog类的主要方法
- 11.1.2对话框的模式
- 11.2文件对话框
- 11.3消息对话框
- 11.4输入对话框
- 11.5确认对话框
- 11.6颜色对话框
- 11.7小结
- 习题11
- 第12章输入流与输出流
- 12.1File类
- 12.1.1文件的属性
- 12.1.2目录
- 12.1.3文件的创建与删除
- 12.1.4运行可执行文件
- 12.2文件字节流
- 12.2.1文件字节输入流
- 12.2.2文件字节输出流
- 12.2.3关闭流
- 12.3文件字符流
- 12.4缓冲流
- 12.5使用文件对话框
- 12.6随机流
- 12.7数组流
- 12.8数据流
- 12.9带进度条的输入流
- 12.10对象流
- 12.11序列化与对象克隆
- 12.12文件锁
- 12.13使用Scanner类解析文件
- 12.14小结
- 习题12
- 第13章泛型与集合框架
- 13.1泛型
- 13.1.1泛型类的声明
- 13.1.2使用泛型类声明对象
- 13.1.3泛型接口
- 13.2链表
- 13.2.1LinkedListE泛型类
- 13.2.2LinkedListE泛型类的常用方法
- 13.2.3遍历链表
- 13.3堆栈
- 13.4散列映射
- 13.4.1HashMapK,V泛型类
- 13.4.2HashMapK,V泛型类的常用方法
- 13.4.3遍历散列映射
- 13.4.4基于散列映射的查询
- 13.5树集
- 13.5.1TreeSetE泛型类
- 13.5.2结点的大小关系
- 13.5.3TreeSet类的常用方法
- 13.6树映射
- 13.7自动装箱与拆箱的使用
- 13.8小结
- 习题13
- 第14章JDBC数据库操作
- 14.1Microsoft Access 数据库管理系统
- 14.1.1建立数据库
- 14.1.2创建表
- 14.2JDBC
- 14.3连接数据库
- 14.3.1连接方式的选择
- 14.3.2建立JDBCODBC桥接器
- 14.3.3ODBC数据源
- 14.3.4建立连接
- 14.4查询操作
- 14.4.1顺序查询
- 14.4.2随机查询
- 14.4.3条件查询
- 14.4.4排序查询
- 14.4.5模糊查询
- 14.5更新、添加与删除操作
- 14.6查询Excel电子表格
- 14.7使用预处理语句
- 14.7.1预处理语句的优点
- 14.7.2使用通配符
- 14.8事务
- 14.8.1事务及处理
- 14.8.2JDBC事务的处理步骤
- 14.9CachedRowSetImpl类
- 14.10Java的Derby内置数据库
- 14.11小结
- 习题14
- 第15章Java多线程机制
- 15.1Java中的线程
- 15.1.1程序、进程与线程
- 15.1.2线程的状态与生命周期
- 15.1.3线程的调度与优先级
- 15.2用Thread的子类创建线程
- 15.3使用Runnable接口
- 15.3.1Runnable接口与目标对象
- 15.3.2run()方法中的局部变量
- 15.3.3在线程中启动其他线程
- 15.4线程的常用方法
- 15.5GUI线程
- 15.6线程的同步
- 15.7在同步方法中使用wait()、notify()和notifyAll()方法
- 15.8计时器线程Timer
- 15.9线程的联合
- 15.10守护线程
- 15.11小结
- 习题15
- 第16章Java网络基础
- 16.1URL类
- 16.1.1URL的构造方法
- 16.1.2读取URL中的资源
- 16.1.3显示URL资源中的HTML文件
- 16.1.4处理超链接
- 16.2InetAdress类
- 16.2.1地址的表示
- 16.2.2获取地址
- 16.3套接字
- 16.3.1套接字Socket
- 16.3.2客户端的套接字对象
- 16.3.3ServerSocket类
- 16.3.4把套接字连接放在一个线程中
- 16.4UDP数据报
- 16.4.1发送数据包
- 16.4.2接收数据包
- 16.5广播数据报
- 16.6Java远程调用
- 16.6.1远程对象及其代理
- 16.6.2RMI的设计细节
- 16.7小结
- 习题16
- 第17章Java Applet
- 17.1Java Applet的结构
- 17.2Java Applet的运行原理
- 17.3在Java Applet中播放声音
- 17.4网页传值
- 17.5小结
- 习题17
- 参考文献