Java高级程序设计
Java高 级 程序 设计
? 第一部分
– 第一章 Java入门基础
– 第二章 异常
– 第三章 Java Applet类型
– 第四章 图形用户界面 GUI(一) ——AWT
– 第五章 Java中的事件处理机制
– 第六章 图形用户界面 GUI(二) ——Swing
Java高 级 程序 设计
– 第七章 多线程
– 第八章 I/O输入输出流
– 第九章 Java数据库连接( JDBC)
– 第十章 Java网络编程
? 第二部分
– 第一章 Java API
– 第二章 Java与多媒体
– 第三章 Java Bean基础
Java高级程序设计 Java入门基础
第一章 Java入门基础
? 1.1 Java语言入门
– 1.1.1 Java语言特点
– 1.1.2 Java语言的运行环境
– 1.1.2 Java Application程序与 Java Applet程序
? 2.2 标识符、关键字和数据类型
– 1.2.1 标识符
– 1.2.2 关键字
– 1.2.3 分隔符
– 1.2.4 数据类型
– 1.2.5 常量与变量
Java高级程序设计 Java入门基础
第一章 Java入门基础
? 1.3 运算符、表达式和语句
– 1.3.1 运算符
– 1.3.2 表达式
– 1.3.3 流程控制语句
? 1.4 类、对象和接口
– 1.4.1 类与对象
– 1.4.2 继承
– 1.4.3 包
– 1.4.4 接口
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java 语言的特点,
– 简单
– 面向对象
– 分布性
– 安全性
– 体系结构中立
– 可移植性
– 解释执行
– 多线程
– 动态性
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java语言的应用前景,
– 所有面向对象的应用开发 。
– 计算过程的可视化, 可操作化的软件的开发 。
– 动态画面的设计, 包括图形图像的调用 。
– 交互操作的设计 。
– 英特网的系统管理功能模块的设计, 包括 Web页面的动态设
计, 管理和交互操作设计等 。
– 企业内部网上的软件开发 。
– 与各类数据库连接查询的 SQL语句实现 。
– 其他应用类型的程序 。
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java语言的运行环境,
– 初学 Java语言最好选用 Sun公司推出的软件开发工具箱 JDK
– JDK的下载:登陆 Java的官方网站 ( http://java.sun.com)
– 直接双击, 程序即可自动解压缩并进行安装, 一路都有画面
指示, 只需要遵循即可 。 可自行选择安装路径 。
– 安装完成后, 在安装路径下的 bin文件夹内, 有我们所需的
各种开发工具 。
– 设置 Java运行环境:进入, 控制面板,, 双击, 系统,, 弹
出, 系统属性, 对话框, 选择, 高级, ?单击, 环境变量,
按钮 。
Java高级程序设计 Java入门基础
1.1 Java语言入门
? JDK实用命令程序:
– Javac
? Java编译器,将 Java源程序编译成字节码
– Java
? Java解释器,直接从类文件执行 Java应用程序,即 application
– Appletviewer
? 小程序浏览器,执行 html文件上的 Java小程序,即 Applet
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java Application程序与 Java Applet程序,
– 根据结构组成和运行环境的不同, Java程序可以分为两类:
Java Application和 Java Applet。
– Java Application是完整的程序, 需要独立的解释器来解释
运行 。
– 而 Java Applet则是嵌在 HTML编写的 Web页面中的非独立程
序, 由 Web浏览器内部包含的 Java解释器来解释运行 。
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java Application程序:
– 例,HelloWorld.java
? public class HelloWorld
{
public static void main ( String args[ ] )
{ System.out.println(―Hello! World!” ); }
}
– 开始使用 JDK:
– javac HelloWorld.java 编译器 编译出 HelloWorld.class
– java HelloWorld 解释器 运行主类
Java高级程序设计 Java入门基础
1.1 Java语言入门
? 字节码的解释与运行,
源代码 目标码 可执行代码
源代码 字节码






操作系统


解释执行
Java解释器
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java Applet程序:
– 例,My.java
? import java.awt.Graphics;
import java.applet.Applet;
public class My extends Applet
{
public void paint(Graphics g)
{ g.drawString("Hello,java applet world",10,20); }
}
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java Applet程序:
– Java Applet 中不需要有 main 方法,它的要求是程序中有
且必须有一个类是系统类 Applet的子类,也就是必须有一个
类的类头部分以 extends Applet 结尾 。
– 所有的 Java Applet 程序中都必须有一个系统类 Applet 的
子类,因为系统类 Applet 中已经定义了很多的成员域和成
员方法,它们规定了 Applet 如何与执行它的解释器 —www
浏览器配合工作。
Java高级程序设计 Java入门基础
1.1 Java语言入门
? Java程序的分类,
– Java Application
? 由 JAVA解释器独立运行字节码
? 由专门的命令行启动程序执行
? 程序中有定义了 main()方法的主类
– Java Applet
? 不能独立运行,字节码必须嵌入 HTML文档
? 当浏览器调用含 APPLET的 Web页面时执行
? 程序中含有 java,applet,Applet 类的子类
Java高级程序设计 Java入门基础
1.1 Java语言入门
? 编写 Java程序需要注意的几点,
– Java 区分大小写
– 一个程序中可以有一个或多个类,但其中只能有一个主类
(public class修饰 )
– 源程序编写完毕,应该用主类名作为文件名,再加后缀,java 存
储成磁盘文件
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 标识符,
– 标识符是用来标识类名、变量名、方法名、类型名、数组名、
文件名的有效字符序列。
– Java语言规定标识符由字母、下划线、美元符号和数字组成,
并且需遵循以下规则:
? ( 1)区分大小写。
? ( 2)不能以数字开头。
? ( 3)以字母或下划线 _或 $符号开头。
? ( 4)不能使用 Java的关键字。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 关键字,
– 关键字是 Java语言中已经被赋予特定意义的单词,一般用来
表示一种数据类型,或者程序的结构等。保留字是为 Java预
留的关键字。
– 目前 Java语言定义的关键字如下:
? const(保留字) goto(保留字) abstract finally int public
this boolean continue float interface return throw break
default for long short throws byte do native static
transient case double if new strictfp try catch else
implements package super void char extends import
private switch volatile class final instanceof protected
synchronize while
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 分隔符,
– 圆括号 ( )在定义和调用方法时用来容纳参数表,在控制语句或强制
类型转换组成的表达式中用来表示执行或计算的优先权。
– 花括号 { }用来包括自动初始化的数组的值,也用来定义程序块、类、
方法以及局部范围。
– 方括号 [ ]用来声明数组的类型,也用来表示撤消对数组的引用。
– 分号 ; 用来终止一个语句。
– 逗号,在变量声明中,用于分隔变量表中的各个变量。在 for控制
语句中,用来将圆括号内的语句连接起来。
– 句号, 用来将软件包中的名字与它的子包或类分隔,也用来将引用
变量与变量或方法分隔。
– 另外,还有一种较为特殊的空白分隔符,空格,Tab跳格键及换行
符均属于这种分隔符。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 数据类型,
– Java共有八种基本类型:四种是整型,两种浮点数字型,一
种字符型 char,以及用于表示真假的布尔变量。
– Java定义了 4种整数类型:字节型( byte),短整型( short),
整型( int),长整型( long)。这些都是有符号的值,无小数部
分的数字,正数或是负数。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 浮点类型,
– Java中定义了两种浮点类型:单精度( float)浮点型及双精
度( double)浮点型。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 字符类型,
– char类型用来表示 Unicode编码表中的字符。
– Unicode定义的国际化的字符集能表示迄今为止人类语言的
所有字符集。它是几十个字符集的统一,例如拉丁文,希腊
语,阿拉伯语等等,因此它要求 16位。
– Java中的 char类型是 16位,其范围是 0~ 65,536,没有负数
的 char。标准字符集 ASCII码的范围仍然是 0~ 127。
? Unicode的使用对于英语、德语、西班牙语或法语的语言是有点低效,
因为它们的字符能容易地被包含在 8位以内。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 布尔类型,
– 只有两个值,真( true)和假( false)。 Java中,布尔值和
整数 0,1不能相互转换。
? 强制类型转换:
– 在使用赋值运算时,可能会遇到等号左边的数据类型和等号
右边的数据类型不一致的情况,这时需要把等号右边的数据
类型转化成等号左边的数据类型。如果这 2种类型是兼容的,
那么 Java将自动地进行转换。例如,把 int类型的值赋给 long
类型的变量。而将变量从较长的数据类型转换成较短的数据
类型时,则必须用到强制类型转换。
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 常量与变量,
– 1、整型常量
– 2、浮点型常量
– 3、布尔常量
– 4、字符常量
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 字符转义序列,
Java高级程序设计 Java入门基础
1.2 标识符、关键字
和数据类型
? 常量与变量,
– 在 Java程序中,我们采用如下的表示方法来定义常量:
– final 常量类型 常量名 = 常量值; (注意:常量名一般大写)
? 例如,final byte BMAX = 3;
– 变量是 Java程序的一个基本存储单元。变量由一个标识符,
类型及一个可选初始值的组合定义。
– 所有的变量都有一个作用域,定义变量的可见性,生存期。
– 在 Java中,所有的变量必须先声明再使用。声明方法如下:
? 访问控制符 变量类型 变量名称 [ = 变量初值 ](可选)
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? Java有 4大类运算符:算术运算、位运算、关系运算和逻辑运
算。 Java还定义了一些附加的运算符用于处理特殊情况。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 关系运算符:
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 逻辑运算符:
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 位运算符:
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 表达式,
– 表达式是由变量、常量、对象、方法调用和操作符组成的公
式。符合语法规则的表达式可以被编译系统理解、执行或计
算,表达式的值就是对它运算后所得的结果。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 流程控制语句,
– Java语言中有三种基本的流程控制语句,即顺序结构、分支
结构和循环结构 。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 流程控制语句,
– 顺序结构是三种结构中最简单的一种,即语句按照书写的顺
序依次执行。
– 分支结构又称为选择结构,它将根据计算所得的表达式的值
来判断应选择执行哪一个流程的分支。
– 循环结构则是在一定条件下反复执行一段语句的流程结构。
这三种结构构成了程序局部模块的基本框架。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 分支语句,
– Java中的分支语句有两个,一个是负责实现双分支的 if 语句,
另一个是负责实现多分支的开关语句 switch 语句。
– if 语句是 Java中的条件分支语句,它能将程序的执行路径分
为两条。 if语句的完整格式如下:
? if(条件表达式)
语句块; // if分支
else
语句块; // else分支
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 分支语句,
– 基于嵌套 if语句的通用编程结构称为 if--else--if 阶梯。如下:
if(条件表达式)
语句块; // if 分支
else if(条件表达式)
语句块; // else if分支
else if(条件表达式)
语句块; // else if分支
………………
else
语句块;
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 分支语句,
– switch语句是 Java的多路分支语句。它的一般格式如下:
switch(表达式)
{ case 判断值 1:语句块 1 // 分支 1
case 判断值 2:语句块 2 // 分支 2
………………
case 判断值 n:语句块 n // 分支 n
default:语句块 n+1 // 分支 n+1
}
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? switch语句:
– 表达式必须为 byte,short,int或 char类型,每个 case语句后
的判断值必须是与表达式类型兼容的特定的一个常量,重复
的 case值是不允许的。
– switch语句的执行过程如下:表达式的值与每个 case语句中
的常量作比较,如果发现了一个与之相匹配的,则执行该
case语句后的代码;如果没有一个 case常量与表达式的值相
匹配,则执行 default语句。
– 在 case语句序列中的 break语句将引起程序流从整个 switch语
句退出。当遇到一个 break语句时,程序将从整个 switch语句
后的第一行代码开始继续执行。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 循环语句,
– Java的循环语句有 for,while和 do-while,这些语句创造了我
们通常所称的循环。
– while语句是 Java最基本的循环语句,当它的控制表达式是真
时,while语句重复执行一个语句或语句块。通用格式如下:
? while (条件表达式)
循环体
– 条件表达式可以是任何布尔表达式。只要条件表达式为真,
循环体就被执行;当条件为假时,程序控制就传递到循环后
面紧跟的语句行。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 循环语句,
– do-while循环的一般语法结构如下:
? do
循环体
while(条件表达式);
– do-while循环总是先执行循环体,然后再计算条件表达式,
如果表达式为真,则循环继续,否则,循环结束。对所有的
Java循环都一样,条件表达式必须是一个布尔表达式。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 循环语句,
– for 循环的一般语法结构如下:
? for(表达式 1;表达式 2;表达式 3)
循环体
– for循环的执行过程如下:第一步,当循环启动时,先执行其初始
化部分。通常,这是设置循环控制变量值的一个表达式,作为控
制循环的计数器,并且初始化表达式仅被执行一次。下一步,计
算表达式 2的值,它必须是布尔表达式,它通常将循环控制变量与
目标值相比较。如果这个表达式为真,则执行循环体;如果为假,
则循环终止。再下一步执行循环体的反复部分,这部分通常是增
加或减少循环控制变量的一个表达式。接下来重复循环 。
Java高级程序设计 Java入门基础
1.3 运算符、表达式和语句
? 跳转语句,
– Java支持 3种跳转语句,break,continue和 return。这些语
句把控制转移到程序的其他部分。
– 在 Java中,break语句有 3种作用。
– 第一,在 switch语句中,它被用来终止一个语句序列。
– 第二,它能被用来退出一个循环。第三,它能作为一种“先
进”的 goto语句来使用。在循环中遇到 break语句时,循环被
终止,程序控制在循环后面的语句重新开始。
Java高级程序设计 Java入门基础
对象

实体
抽象数据类
计算机世界 现实世界





映射
计算机逻辑的实现
概念世界





































拢对象的状态在计算机内部是用变量来表示,而对象的行为在计算机内部是用方法来表示的
1.4 类、对象和接口
? 下图展现了类与对象的基本关系:
Java高级程序设计 Java入门基础
1.4 类、对象和接口
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 类的含义,
– 在类中, 数据或变量被称为实例变量, 代码包含在方法内 。
定义在类中的方法和实例变量被称为类的成员 。
– 在大多数类中, 实例变量被定义在该类中的方法操作和存取 。
– 方法决定该类中的数据如何使用 。 每个对象都包含它自己对
类中实例变量的拷贝 。
– 一个对象的数据是独立的且是惟一的 。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 类定义的通用格式如下:
class 类名 {
type instance-variable1;
//,..
type instance-variableN;
type methodname1(parameter-list) {
// 方法体
}
//,..
type methodnamen(parameter-list) {
// 方法体
}
}
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 类的含义,
– 要获得一个类的对象需要两步 。
– 第一步, 你必须声明该类类型的一个变量, 这个变量没有定
义一个对象 。
– 第二步, 该声明要创建一个对象的实际的物理拷贝, 并把对
于该对象的引用 ( 即内存地址 ) 赋给该变量 。 这是通过使用
new运算符实现的 。 在
– Java中, 所有的类的对象都必须动态分配 。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 变量的定义和方法的定义,
– 方法定义包括两部分:方法的声明和方法体 。 一般格式为:
? 返回值 方法名 (参数列表 ) {
// 方法体
}
? 使用方法时,需注意两件事情:第一,方法返回的数据类型必
须与该方法指定的返回类型相兼容;第二,接收方法返回值的
变量也必须与指定方法返回值的类型相兼容。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 成员变量,
– 类的成员变量又分为实例成员变量和类成员变量 。 例如:
? class Name {
static String firstname;
String secondname;
}
? 其中 secondname是实例变量,firstname是类变量。如果成员变
量的类型前面加上关键字 static,这样的成员变量称做是类变量
或静态成员变量。它们是类的域,不属于任何一个类的具体对
象。保存在类的内存区域的公共存储单元。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 构造方法,
– 构造方法是一种特殊的方法, 它的名字必须与它所在的类的
名字完全相同, 并且不返回任何数据类型 。
– 用于在 new运算符开辟了新建对象的内存空间之后, 调用它
初始化这个新建对象 。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 多态性,
– 多态性是允许一个接口被多个同类动作使用的特性 。
– 在 Java中, 同一个类中的 2个或 2个以上的方法可以有同一个
名字, 只要它们的参数声明不同即可 。
– 在这种情况下, 该方法就被称为重载, 这个过程称为方法重
载 。 方法重载是 Java实现多态性的一种方式 。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 继承,
– 继承是面向对象编程技术的一块基石,因为它允许建立分等
级层次的类,使得程序结构清晰,降低编码和维护的工作量。
– 在 Java术语学中,被继承的类叫超类,继承超类的类叫子类,
它是超类的一个专门用途的版本,它继承了超类定义的所有
实例变量和方法,并且为它自己增添了独特的元素。
– Java中的继承是通过 extends关键字来实现的。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 隐藏,
– 当我们在子类中定义的成员变量和父类中的成员变量同名时,
则子类的成员变量隐藏了父类的成员变量。
– 当子类中定义了一个方法,并且这个方法的名字、返回类型、
及参数个数和类型同父类的某个方法完全相同时,父类的这
个方法将被隐藏。
– 子类通过成员变量的隐藏和方法的重写可以把父类的状态和
行为改变为自身的状态和行为。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? final,
– 不接受方法被重载,可以在方法前定义 final修饰符。希望防
止一个类被继承,做到这点也只需在类声明前加 final,声明
一个 final类含蓄的宣告了它的所有方法也都是 final。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? super,
– 有时我们创建一个超类,该超类隐藏它自己实现的细节,这
种情况下,子类没有办法直接访问或初始化它自己的这些变
量,它可以用关键字 super来实现引用它直接的超类。
– super有两种通用形式:第一种调用超类的构造方法,第二种
用来访问被子类的成员隐藏的超类成员。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? abstract,
– 定义一个超类,该超类定义了一种给定结构的抽象,不提供
任何完整的方法实现,用于决定子类所必须实现的方法的本
性,其他由每个子类自己去填写细节。
– 声明一个抽象类,在关键字 class前使用关键字 abstract。
– 抽象类不能通过 new操作符直接实例化。
– 所有抽象类的子类都必须执行超类中的所有抽象方法或者是
它自己也声明成 abstract。
– 任何含有一个或多个抽象方法的类都必须声明成抽象类。声
明一个抽象方法,用下面的通用形式:
– abstract type name ( parameter-list ) ;
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 包,
– 包是 Java语言中有效管理类的一个机制。
– package语句定义一个存储类的名字空间。下面是 package
声明的通用形式:
? package pkg;
– Java用文件系统目录来存储包。任何你声明的 myPackage中
的一部分的类的,class文件被存储在一个 myPackage目录中,
目录名必须和包名严格匹配。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 包,
– 在编写源文件时,除了自己编写类外,还经常需要使用 Java
提供的许多类,这些类可能在不同的包中,我们可以使用
import语句引入系统包中的类。如:
? import java, awt, * ;
– 包不仅是命名机制也是可见度控制机制。类和包都是封装和
容纳名称空间和变量及方法范围的方法。包就像盛装类和下
级包的容器,类就像是数据和代码的容器。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 三个访问控制符,private,public和 protected,
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 接口,
– Java中的接口在语法上有些类似于类,它定义了若干个抽象
方法和常量,形成一个属性集合,该属性集合通常对应了某
一组功能,其主要作用是可以帮助实现类似于类的多重继承
的功能。
Java高级程序设计 Java入门基础
1.4 类、对象和接口
? 接口的通用形式,
– access interface name {
return-type method-name1(parameter-list);
return-type method-nameN(parameter-list);
type final-varname1 = value;
type final-varnameN = value;
//,..
}
? access要么是 public,要么就没有用修饰符。后者是默认访问范
围。当它声明为 public时,则接口可以被任何代码使用。
Java高级程序设计 Java入门基础
小结
? 掌握:
– 典型的 Java程序开发环境
– Java基本数据类型、使用输入输出语句及算术运算符
– 编写判定语句、面向对象的开发方法及句法结构
? 理解:
– Java语言的语言特性
– 面向对象的编程思想
? 了解:
– applet与 application的区别
– Java在开发 Internet和 Web的分布式客户 /服务器应用中的作用