唐大仕 http://www.dstang.com dstang2000@263.net JAVA 程序设计 唐大仕 http://www.dstang.com dstang2000@263.net
复习 第1章 Java语言与面向对象的程序设计 第2章 简单的Java程序 第3章 数据运算、流控制和数组 第4章 类、包和接口 第3章 数据运算、流控制和数组 第4章 类、包和接口 第5章 深入理解Java语言 第6章 异常处理 第7章 工具类及常用算法 第8章 Java的多线程 第9章 流、文件及基于文本的应用 第10章 图形用户界面 第11章 网络、多媒体和数据库编程
第1章 JAVA语言与面向对象的程序设计 1.1 Java语言简介 1.2 面向对象程序设计
JAVA的特点 简单易学 面向对象 平台无关性 安全稳定 支持多线程 很好地支持网络编程(Applet) Java 丰富的类库(各种包齐备)
对象(object) 封装的实体 = 数据+方法(行为) 数据:属性或状态 方法: 作用于数据上的操作 封装:属性的访问和变化通过方法完成 方法: 作用于数据上的操作 封装:属性的访问和变化通过方法完成 每个对象由对象标识符唯一标识
面向对象的特征 封装性 继承性 多态性
对象的关系 包含、继承和关联。 当对象A 是对象B 的属性时,称对象B包含对象A。 当对象A是对象B的特例时,称对象A继承了对象B。
第2章 简单的JAVA 程序 开发JAVA 程序的基本步骤 基本输入输出编程 JAVA编程工具
JAVA程序的基本构成 HelloDate.java Package 语句(0或1句) Import 语句(0或多句)引入其他类的类库 类定义——class 类=类头+类体 类成员=域(属性)+方法 方法=方法头+方法体 语句由“;”结束, {}的使用。
Application和Applet程序 结构和运行环境不同。 前者是完整的程序,需要独立的解释器解释运行。 后者是嵌在HTML网页中的非独立的程序,由Web 浏览器内部包含的JAVA解释器来解释运行。 前者含main 后者继承Applet
第3章 数据运算、流控制和数组 3.1 数据类型、变量与常量 3.2 运算符与表达式 3.3 流程控制语句
Java数据类型划分 Java中的数据类型分为两大类,一类是基本数据类型(primitive types), 另一类是引用类型( reference types )。后者相当于对象。 整数类型(byte, short, int, long) 数值型 浮点类型(float, double) 基本数据类型 字符型(char) 布尔型(boolean) 数据类型 类(class) 引用数据类型 接口(interface) 数组
分支语句--if if(条件表达式) 语句块; // if分支 else 语句块; // else分支 例:LeapYear.java
语句 分支 if switch 循环 for while do
特殊流程控制语句 break 语句 break语句用于终止某个语句块的执行 { …… { …… break; …… } break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 label1: { …… label2: { …… label3: { …… break label2;
数组元素的默认初始化 数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如: public class Test { public static void main(String argv[]){ int a[]= new int[5]; System.out.println(a[3]); }
多维数组初始化 静态初始化: 动态初始化 int a[][] = new int[4][5]; int intArray[][] = {{1,2},{2,3},{3,4,5}}; int intArray1[3][2] = {{1,2},{2,3},{4,5}}; //illegal 动态初始化 int a[][] = new int[4][5]; int b[][] = new int[3][] b[0] = new int[2]; b[1] = new int[3]; b[2] = new int[5];
第4章 类、包和接口
4.1 类、域、方法 4.1.1 定义类中的域和方法 4.1.2 构造方法与对象的创建 4.1.3 使用对象 4.1.4 方法的重载 4.1.5 this的使用
4.2 类的继承 4.2.1 派生子类 4.2.2 域的继承与隐藏、添加 4.2.3 方法的继承、覆盖与添加 4.2.4 super的使用 4.2.5 父类对象与子类对象的转换
4.3 包 4.3.1 package语句 4.3.2 import语句 4.3.3 编译和运行包中的类 4.3.4 CLASSPATH
4.4 成员的访问控制符 同一个类中 同一个包中 不同包中的子类 不同包中的非子类 private Yes 默认 protected public
4.5 非访问控制符 static final abstract 非访问控制符 基 本 含 义 修 饰 类 修 饰 成 员 修饰局部变量 4.5 非访问控制符 非访问控制符 基 本 含 义 修 饰 类 修 饰 成 员 修饰局部变量 static 静态的、非实例的、类的 只可以修饰内部类 Yes final 最终的、不可改变的 abstract 抽象的、不可实例化的
4.6 接口的定义 interface 注意其所有方法都是 public abstract 的 4.6 接口的定义 interface 注意其所有方法都是 public abstract 的 其所有字段都是public static final的
第5章 深入理解Java语言
5.1 变量及其传递 5.1.1 基本类型变量与引用型变量 5.1.2 域变量与局部变量 5.1.3 变量的传递 5.1.4 变量的返回
5.2 多态与虚方法调用 5.2.1 上溯造型 5.2.2 虚方法调用 5.2.3 动态类型确定
5.3 对象构造与初始化 5.3.1 调用本类或父类的构造方法 5.3.2 构造方法的执行过程 5.3.3 构建方法内部调用的方法的多态性
5.3.2 构造方法的执行过程 对于一个复杂的对象,构造方法的执行过程遵照以下步骤: 调用本类或父类的构造方法,直至最深一层派生类。 按照声明顺序执行域的初始化赋值。 执行构造函数中的各语句。 构建器的调用顺序非常重要。先父类构造,再本类成员赋值,最后执行构造方法中的语句。
5.4 对象清除与垃圾回收 5.4.1 对象的自动清除 5.4.2 System.gc()方法 5.4.3 finalize()方法
5.5 内部类与匿名类 5.5.1 内部类 5.5.2 方法中的内部类及匿名类
第6章 异常处理
6.1 异常处理 6.1.1 异常的概念 6.1.2 捕获和处理异常 6.1.3 应用举例
抛出异常 捕获异常 throw异常对象; 语句组 }catch(异常类名 异常形式参数名){ 异常处理语句组; }finally{ } try{ 语句组 }catch(异常类名 异常形式参数名){ 异常处理语句组; }finally{ } 其中,catch语句可以有一个或多个,而且至少要有一个catch语句或finally语句
6.2 创建用户自定义异常类 6.2.1 自定义异常类 6.2.2 应用举例
第7章 工具类及常用算法
7.1 Java语言基础类 7.1.1 Java基础类库 7.1.2 Object类 7.1.3 基本数据类型的包装类 7.1.4 Math类 7.1.5 System类 7. 2 字符串 7.2.1 String类 7.2.2 StringBuffer类 7.2.3 StringTokenizer类
7.3 集合类 7.3.1 集合与Collection API 7.3.2 Set接口及HashSet类 7.3.3 List接口及ArrayList,Vector类 7.3.4 Iterator及Enumeration 7.3.5 Map接口及Hashtable类 7.4 向量、堆栈、队列 7.4.1 Vector向量 7.4.2 Stack堆栈 7.4.3 LinkedList及队列
7.5 排序与查找 7.5.1 Arrays类 7.5.2 Collections类 7.5.3 冒泡排序 7.5.4 选择排序 7.5.5 快速排序
7.6 遍试、迭代、递归及回溯 7.6.1 遍试 for()中用if 7.6.2 迭代 while()中用a=f(a) 7.6.3 递归 f(n)中调用f(n-1) 7.6.4 回溯
7.7 与集合类相关的Java新特性 7.7.1 泛型 7.7.2 增强的for语句 7.7.3 装包与拆包
第8章 Java的多线程
8.1 线程及其创建 8.1.1 Java中的线程 8.1.2 创建线程对象的两种方法 8.1.3 多线程 8.1.4 应用举例 8.2 线程的调度 8.2.1 线程的状态与生命周期 8.2.2 线程调度与优先级 8.2.3 对线程的基本控制 8.2.4 一个实用的Timer类 8.3 线程的同步与共享 8.3.1 synchronized关键字 8.3.2 线程间的同步控制
第9章 输入、输出流及文件处理
字节流与字符流 字 节 流 字 符 流 输 入 InputStream Reader 输 出 OutputStream Writer
9.1.2 节点流和处理流 按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流与处理流两类。 9.1.2 节点流和处理流 按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流与处理流两类。 (1)节点流(Node Stream) 可以从或向一个特定的地方(节点)读写数据。如文件流FileReader。 (2)处理流(Processing Stream) 是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读、写功能。处理流又称为过滤流,如缓冲处理流BufferedReader。
常用的节点流 节 点 类 型 字 节 流 字 符 流 File 文件 FileInputStream FileOutputStream FileReader FileWriter Memory Array 内存数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter Memory String 字符串 StringReader StringWriter Pipe 管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
常用的处理流 处 理 类 型 字 节 流 字 符 流 Buffering 缓冲 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter Filtering 过滤 FilterInputStream FilterOutputStream FilterReader FilterWriter Converting between bytes and character 字节流转为字符流 InputStreamReader OutputStreamWriter Object Serialization 对象序列化 ObjectInputStream ObjectOutputStream Data conversion 基本数据类型转化 DataInputStream DataOutputStream Counting 行号处理 LineNumberInputStream LineNumberReader Peeking ahead 可回退流 PushbackInputStream PushbackReader Pinting 可显示处理 PrintStream PrintWriter
9.1 流式输入与输出 9.1.1 字节流与字符流 9.1.2 节点流和处理流 9.1.3 标准输入和标准输出 9.1.4 应用举例 9.2 文件及目录 9.2.1 文件与目录管理 9.2.2 文件输入与输出流 9.2.3 RandomAccessFile类 9. 3 基于文本的应用 9.3.1 Java Application命令行参数 9.3.2 环境参数 9.3.3 处理Deprecated的API 9.3.4 正则表达式
第10章 图形用户界面
设计和实现图形用户界面的工作主要有以下几点。 (1)创建组件(Component): (2)指定布局(Layout): 创建组成界面的各种元素,如按钮、文本框等。 (2)指定布局(Layout): 根据具体需要排列它们的位置关系。 (3)响应事件(Event): 定义图形用户界面的事件和各界面元素对不同事件的响应, 从而实现图形用户界面与用户的交互功能。
10.2 布局管理 Java.awt包中共定义了五种布局管理器,每个布局管理器对应一种布局策略,分别是 FlowLayout 10.2 布局管理 Java.awt包中共定义了五种布局管理器,每个布局管理器对应一种布局策略,分别是 FlowLayout BorderLayout CardLayout GridLayout GridBagLayout。
默认布局管理器 BorderLayout FlowLayout Component Container Window Panel Frame Dialog Applet BorderLayout FlowLayout
事件处理器AWTEventListener 事件处理器(Event handler)是对事件进行处理的程序,在编程时通过实现事件监听器(Event Listener)来实现对事件的处理。 事件监听器是一些事件的接口,这些接口是 java.awt.AWTEventListener的子类。接口中含有相关的方法,如:MouseMotionListener是对鼠标移动事件的处理的接口,它含有两个重要的方法: void mouseDragged(MouseEvent e);// 处理鼠标拖动的方法 void mouseMoved(MouseEvent e);// 处理鼠标移动的方法 在这些方法中,都带一个事件对象作为参数,如MouseMotionListener的两个方法都带MouseEvent参数。程序中可以根据这个参数可以得到有关事件的详细信息。
2.事件处理器WTEventListener 事件处理器(Event handler)是对事件进行处理的程序,在编程时通过实现事件监听器(Event Listener)来实现对事件的处理。 事件监听器是一些事件的接口,这些接口是 java.awt.AWTEventListener的子类。接口中含有相关的方法,如:MouseMotionListener是对鼠标移动事件的处理的接口,它含有两个重要的方法: void mouseDragged(MouseEvent e);// 处理鼠标拖动的方法 void mouseMoved(MouseEvent e);// 处理鼠标移动的方法 在这些方法中,都带一个事件对象作为参数,如MouseMotionListener的两个方法都带MouseEvent参数。程序中可以根据这个参数可以得到有关事件的详细信息。
第11章 网络、多媒体和数据库编程
11.1 Java网络编程Socket 11.1.1 使用URL 11.1.2 用Java实现底层网络通信 11.1.3 实现多线程服务器程序 11.1.4 Java的Email编程 11.2 多媒体编程 JMF 11.2.1 在Applet中获取声音与图像 11.2.2 Java图像编程 11.2.3 Java声音编程 11.3 Java数据库编程 Connection Statement ResultSet 11.3.1 Java访问数据库的基本步骤 11.3.2 使用JTable显示数据表 11.4 J2EE及J2ME简介 11.4.1 J2EE简介 11.4.2 J2ME简介