面向对象程序设计
王 剑
Email,wjiancuit@sina.com
课程概述
? Java的历史
? 面向对象分析与设计( OOAD)
? 基本的 Java应用程序
? 高级的面向对象概念
各部分概述
? 第一部分 Java编程语言概述
? 第二部分 面向对象的分析与设计
? 第三部分 Java技术编程入门
-对象与编程结构
-运算符、类型转换以及条件判断结构
-循环结构
-使用方法
-面向对象的 Java程序
-数组
-继承
【 学习目标 】
? 了解 Java的历史和发展
? 了解 Java的工作方式
? 初步接触 Java程序的两种方式,
Java Application和 Java Applet
? 学习阅读 Java帮助文档,并安装 Java开发
环境和帮助文档
第一章 Java编程语言概述
1.1 Java的历史与发展
1.1.1 Java的历史
? 最初命名为 Oak(橡树)
? 小组主要成员,James Gosling等
? 最初目的:与家用电器一起使用
? 1994年,小组意识到 Oak非常适合用于 Internet
? 于 1995年 5月发布
? 第一个非试用版本于 1996年发布
? Java技术是免费的
James
Gosling
JavaOne大会
?1996年 5月,第一界
JavaOne大会在旧金山召
开。
1.1.2 Java的发展
? 1995.5.23 Java诞生
? 1997.2.18 JDK1.1 (Java1.1 API)
VJ++,cafe,JBuilder …,支持
? 1998.12 JDK1.2 (Java2SDK 1.2)
? 目前版本 J2SDK 1.4.2
? 网址(查询新动向)
– http://java.sun.com
?, Thinking in Java》, Bruce Eckel,
机械工业出版社
1.1.3 Java的设计目标
◇ 创建一种面向对象的程序设计语言
◇ 易于移植到不同的平台(一次编译,到处运行)
◇ 吸收 C和 C++的优点,使程序员容易掌握
◇ 去掉 C和 C++中影响程序健壮性的部分,例如指针、
内存申请和释放,使程序更安全稳定
◇ 实现多线程,使得程序能够同时执行多个任务
◇ 为分布式环境提供动态下载程序代码的机制
◇ 提供代码校验机制以保证安全性
1.2 Java的工作方式
计算机的高级编程语言类型,
-编译型
-解释型
? 编译型,跨平台性差
? 解释型,跨平台,速度慢
? Java文件类型
–.java Java源文件
–.class 二进制 字节码文件
Java编译器 Import java.io.*;
class test {….}
test.java
DF BA 09 88
…….,
test.class
? 编译过程
Java虚拟机
Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,
既要考虑处理器的型号,也要考虑操作系统的种类。
如下图所示,目前在 SPARC,X86,MIPS和 PPC等嵌入式处理芯
片上、在 UNIX,Linux,windows和部分实时操作系统上都有
java虚拟机的实现。
Java
源程序
编译 字节码
文件
Java
虚拟机
执行
Linux
Windows
Mac
1.2.2 Java平台
? The Java Virtual Machine (JVM)
? The Java 应用编程接口 (Java API),
Java应用编程接口是已编译的可在我们的程序中使用的代码库
(基础类库 )。它们使我们能够添加现成的可定制的功能,以节约编程
时间。
Java Platform 2
? J2SE,Standard Edition针对桌面计算机开发(主要有 Java
Applet和 Java Application应用程序
? J2EE,Enterprise Edition用来开发企业应用的平台,基于组件
技术的应用开发框架
? J2ME,Mirco Edition针对嵌入式技术
1.3 Java语言的特点
? A simple,object-oriented,
distributed,interpreted,robust,
secure,architecture-neutral,portable,
high-performance,multi-threaded,
dynamic language
? 1,简单、面向对象和分布式
? 2,解释执行、鲁棒并且安全
? 3,结构中立并且可以移植
? 4,高性能
? 5,多线程并且是动态的
? 简单,KISS
– C++ like
– 无指针
– 自动内存回收
? 面向对象
– 完全基于类、对象
– 封装、继承、多态
– 取消多继承、模版、运算符重载
? 分布式
– 动态下载程序代码的机制完全是为了适应网络分布式计算的特点
– Java简化了网络支持,使得网络编程比较简单。远程方法调用
( RMI)技术使得分布式计算实现起来非常容易。
– Java对 XML的强大支持进一步提高了分布式环境下的计算。
? 解释执行
? 稳定性
– 检查数据类型的匹配,数组下标越界检查
– 无指针
– 自动内存管理,保护内存数据、程序碎片收集
– 例外控制机制,正确处理运行时错误
? 安全性
– 代码检测
– 垃圾收集机制,自动内存回收
– 无指针
? 可移植
– JVM
– 统一的数据类型
– int-32bit
– char-16 bit unicode
? 高效
– JIT(Just-In-Time)及时编译器的代码生成技术可按需编
译字节代码为机器代码,
提高运行速度。
? 多线程
– 支持多任务
? 动态
– 动态下载程序代码的机制,程序可以根据需要把代码实时
的从服务器中下载过来执行
1.4 JAVA开发工具
? JDK系列( Sun) 命令行
? Java WorkShop( Sun)
? Symantec CAFé
? JBuilder(Borland)
? Visual J++(MicroSoft)
? JCreator,IDE开发 工具
OPTIONAL
王 剑
Email,wjiancuit@sina.com
课程概述
? Java的历史
? 面向对象分析与设计( OOAD)
? 基本的 Java应用程序
? 高级的面向对象概念
各部分概述
? 第一部分 Java编程语言概述
? 第二部分 面向对象的分析与设计
? 第三部分 Java技术编程入门
-对象与编程结构
-运算符、类型转换以及条件判断结构
-循环结构
-使用方法
-面向对象的 Java程序
-数组
-继承
【 学习目标 】
? 了解 Java的历史和发展
? 了解 Java的工作方式
? 初步接触 Java程序的两种方式,
Java Application和 Java Applet
? 学习阅读 Java帮助文档,并安装 Java开发
环境和帮助文档
第一章 Java编程语言概述
1.1 Java的历史与发展
1.1.1 Java的历史
? 最初命名为 Oak(橡树)
? 小组主要成员,James Gosling等
? 最初目的:与家用电器一起使用
? 1994年,小组意识到 Oak非常适合用于 Internet
? 于 1995年 5月发布
? 第一个非试用版本于 1996年发布
? Java技术是免费的
James
Gosling
JavaOne大会
?1996年 5月,第一界
JavaOne大会在旧金山召
开。
1.1.2 Java的发展
? 1995.5.23 Java诞生
? 1997.2.18 JDK1.1 (Java1.1 API)
VJ++,cafe,JBuilder …,支持
? 1998.12 JDK1.2 (Java2SDK 1.2)
? 目前版本 J2SDK 1.4.2
? 网址(查询新动向)
– http://java.sun.com
?, Thinking in Java》, Bruce Eckel,
机械工业出版社
1.1.3 Java的设计目标
◇ 创建一种面向对象的程序设计语言
◇ 易于移植到不同的平台(一次编译,到处运行)
◇ 吸收 C和 C++的优点,使程序员容易掌握
◇ 去掉 C和 C++中影响程序健壮性的部分,例如指针、
内存申请和释放,使程序更安全稳定
◇ 实现多线程,使得程序能够同时执行多个任务
◇ 为分布式环境提供动态下载程序代码的机制
◇ 提供代码校验机制以保证安全性
1.2 Java的工作方式
计算机的高级编程语言类型,
-编译型
-解释型
? 编译型,跨平台性差
? 解释型,跨平台,速度慢
? Java文件类型
–.java Java源文件
–.class 二进制 字节码文件
Java编译器 Import java.io.*;
class test {….}
test.java
DF BA 09 88
…….,
test.class
? 编译过程
Java虚拟机
Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,
既要考虑处理器的型号,也要考虑操作系统的种类。
如下图所示,目前在 SPARC,X86,MIPS和 PPC等嵌入式处理芯
片上、在 UNIX,Linux,windows和部分实时操作系统上都有
java虚拟机的实现。
Java
源程序
编译 字节码
文件
Java
虚拟机
执行
Linux
Windows
Mac
1.2.2 Java平台
? The Java Virtual Machine (JVM)
? The Java 应用编程接口 (Java API),
Java应用编程接口是已编译的可在我们的程序中使用的代码库
(基础类库 )。它们使我们能够添加现成的可定制的功能,以节约编程
时间。
Java Platform 2
? J2SE,Standard Edition针对桌面计算机开发(主要有 Java
Applet和 Java Application应用程序
? J2EE,Enterprise Edition用来开发企业应用的平台,基于组件
技术的应用开发框架
? J2ME,Mirco Edition针对嵌入式技术
1.3 Java语言的特点
? A simple,object-oriented,
distributed,interpreted,robust,
secure,architecture-neutral,portable,
high-performance,multi-threaded,
dynamic language
? 1,简单、面向对象和分布式
? 2,解释执行、鲁棒并且安全
? 3,结构中立并且可以移植
? 4,高性能
? 5,多线程并且是动态的
? 简单,KISS
– C++ like
– 无指针
– 自动内存回收
? 面向对象
– 完全基于类、对象
– 封装、继承、多态
– 取消多继承、模版、运算符重载
? 分布式
– 动态下载程序代码的机制完全是为了适应网络分布式计算的特点
– Java简化了网络支持,使得网络编程比较简单。远程方法调用
( RMI)技术使得分布式计算实现起来非常容易。
– Java对 XML的强大支持进一步提高了分布式环境下的计算。
? 解释执行
? 稳定性
– 检查数据类型的匹配,数组下标越界检查
– 无指针
– 自动内存管理,保护内存数据、程序碎片收集
– 例外控制机制,正确处理运行时错误
? 安全性
– 代码检测
– 垃圾收集机制,自动内存回收
– 无指针
? 可移植
– JVM
– 统一的数据类型
– int-32bit
– char-16 bit unicode
? 高效
– JIT(Just-In-Time)及时编译器的代码生成技术可按需编
译字节代码为机器代码,
提高运行速度。
? 多线程
– 支持多任务
? 动态
– 动态下载程序代码的机制,程序可以根据需要把代码实时
的从服务器中下载过来执行
1.4 JAVA开发工具
? JDK系列( Sun) 命令行
? Java WorkShop( Sun)
? Symantec CAFé
? JBuilder(Borland)
? Visual J++(MicroSoft)
? JCreator,IDE开发 工具
OPTIONAL