《 增量式模块化程序设计 》

37
增增增增增增增增增增增 《》 增增增增增

description

《 增量式模块化程序设计 》. 基础知识篇. 第 1 章 Java 初探. 本章学习目标. 了解 Java 语言的历史和特点。 理解 Java 与其他编程语言间的关系。 初步了解简单 Java 程序的构成。 了解流行的 Java 程序集成开发环境。 掌握 Java Application 的一般开发步骤。. 1.1 Java 概述. Java 是由美国 Sun 公司开发的支持面向对象程序设计的语言,它最大的优势是借助于虚拟机机制实现的跨平台特性,实现所谓的“ Write once , run everywhere” 。 - PowerPoint PPT Presentation

Transcript of 《 增量式模块化程序设计 》

Page 1: 《 增量式模块化程序设计 》

《增量式模块化程序设计》基础知识篇

Page 2: 《 增量式模块化程序设计 》

第 1 章 Java 初探

Page 3: 《 增量式模块化程序设计 》

本章学习目标

了解 Java 语言的历史和特点。 理解 Java 与其他编程语言间的关系。 初步了解简单 Java 程序的构成。 了解流行的 Java 程序集成开发环境。 掌握 Java Application 的一般开发步骤。

Page 4: 《 增量式模块化程序设计 》

1.1 Java 概述 Java 是由美国 Sun 公司开发的支持面向对象程

序设计的语言,它最大的优势是借助于虚拟机机制实现的跨平台特性,实现所谓的“ Write once , run everywhere” 。

易移植性及网络编程使得 Java 迅速流行起来,成为一种深受广大开发者喜欢的编程语言。

目前,随着 J2ME 、 J2SE 和 J2EE 的发展, Java 已经不仅仅是一门简单的计算机开发语言了,它已经拓展发展出一系列的业界先进技术。

Page 5: 《 增量式模块化程序设计 》

三种版本 J2ME ( Java 2 Micro Edition )是 Java

的微型版,常用于嵌入式设备及消费类电器(如手机等)上的开发。

J2SE ( Java 2 Standard Edition )是 Java 的标准版,用于针对普通 PC 的标准应用程序开发。

J2EE ( Java 2 Enterprise Edition )是 Java 的企业版,用来针对企业级进行应用服务的开发。

Page 6: 《 增量式模块化程序设计 》

1.1.1 Java 的诞生 1990 年 12 月, SUN 公司成立一个叫做 Gre

en Team 的小组 。 Green Team 发表了一款名叫 Star Seven(*7)

的机器,它有点像现在我们熟悉的 PDA (个人数字助理),不过它有着比 PDA 还强大的功能,比如无线通讯 (wireless network) 、 5寸彩色的 LCD 、 PCMCIA 介面等等。

Page 7: 《 增量式模块化程序设计 》

Java 的诞生 Java 语言的前身 Oak 就是在那时诞生的,主

要的目的是用来撰写在 star 7 上的应用程序。 因为当时 Oak 要去注册商标时,发现已经有

另外一家公司已经先用了 Oak 这个名字。 Oak 这个名字不能用,那要取啥新名字呢?工程师们边喝着咖啡讨论着,看看手上的咖啡,突然灵机一动,就叫 Java 好了。就这样它就变成了业界所熟知的 Java 了。

在 1995 年 5 月 23 日, JDK ( Java Development Kits ) 1.0a2 版本正式对外发表,它标志着 Java 的正式诞生。

Page 8: 《 增量式模块化程序设计 》

1.1.2 Java 的特点 1 . 平台独立性

服务器 大型机 笔记本电脑 PDA 手机

Java字节码文件

Page 9: 《 增量式模块化程序设计 》

2 . 安全性

( 1 )去除指针,避免了对内存的非法访问。 ( 2 ) Java 是一种强类型的程序设计语言,要求

显示的声明,保证编译器可以提前发现程序错误,提高可靠性。

( 3 )垃圾自动回收机制让程序员从烦人的内存管理工作中解脱出来,专注于程序开发;它很好的确保内存管理的正确性,避免出现“内存泄露”现象。

( 4 ) Java 语言提供了异常处理机制。 ( 5 ) Java 程序运行时,解释器会对其进行数组

和字符串等的越界检查,确保程序安全。

Page 10: 《 增量式模块化程序设计 》

3. 多线程 在 DOS 年代里,人们一次只能运行一个程序,执

行完才能运行下一个,后来出现了视窗 windows之后,人们可以同时运行几个程序,并在各个运行程序间做切换,比如一边听音乐一边编辑 word文档。

再后来,为了提高程序的并发性,又引入了线程的概念,线程也称作轻量级进程,进程是系统分配资源的基本单位,而线程成为了系统 CPU调度执行的基本单位,一个进程可以只有一个线程,也可以有多个线程。

Page 11: 《 增量式模块化程序设计 》

4. 网络化 在网络环境中,对象可以在本地或远程机器执行。

Java 程序可以通过网络打开和访问对象,就像访问本地系统一样。

Java 语言提供的丰富类库保证了其可以在 HTTP 、FTP 和 TCP/IP协议中良好运行。

Java Applet 程序需要客户端浏览器的支持,并且其是通过标签对 <applet>< /applet >将自己嵌入HTML中。当用户浏览该WEB页时, Java Applet 程序才从服务器端下载到客户端解释执行。因此也称 Java Applet 是可移动代码,这种移动性为分布式程序开发提供了一种新的技术途径。

Page 12: 《 增量式模块化程序设计 》

5. 面向对象

( 1 )封闭性 ( 2 )继承性 ( 3 )多态性

Page 13: 《 增量式模块化程序设计 》

1.1.3 Java 与其他编程语言间的关系

C 语言适合用来开发系统程序,像很多的操作系统及驱动程序都是用 C 来编写的;

Fortran适合于用来进行数值计算; Pascal 语言结构严谨,适合于做教学语言; Visual Basic 和 Delphi适合用来开发中小型的应

用程序, C++适合开发大型的应用程序;而 Java适合开发跨平台的应用程序。 每种语言都有其各自的特色,至于选用什么语言作为开发工具,关键要看任务。只有适合的,没有最好的。

Page 14: 《 增量式模块化程序设计 》

1.2 第一个 Java 程序 用 Java书写的程序有两种类型: Java 应用程

序( Java Application )和 Java 小应用程序( Java Applet )。

public class Hello { public static void main(String args[]) {

System.out.println("Hello,welcome to Java programming."); }}

Page 15: 《 增量式模块化程序设计 》

图解

public class Hello {public static void main(String args[]){

System.out.println("Hello,welcome to Java programming.");}

}

类名:用户自定义

程序中的唯一一个语句,功能为将括号中的字符串进行原样输出

注意:Java语言是大小写敏感的(a和A是不同的!)

简单 Java 程序的模版如下:

public class 类名 {public static void main(String args[]){

// 你的程序代码!}

}

Page 16: 《 增量式模块化程序设计 》

● 类名称后面的大括号标识着类定义的开始和结束,而main方法后面的大括号则标识方法体的开始和结束。 Java 程序中大括号都是成对出现的。● 习惯类名的首字母用大写,变量名小写打头。● 程序中应适当使用空格符和空白行来对程序语句元素进行间隔,增加程序的可读性。● 在编辑程序时,最好一条语句占据一行。文件名与 public 类名在拼写和大小写上必须保持一致。● 一个 Java Application 程序必须定义有且仅有一个 main方法,它是程序的执行入口。

注意

Page 17: 《 增量式模块化程序设计 》

1.3 Java 程序开发工具 编写 Java源程序的工具软件很多,只要是能

编辑纯文本(注意: word文档不是纯文本)的都可以,比如 notepad (记事本), wordpad (写字板), UltraEidt , EditPlus 等等。

对于 Java软件开发人员来说,他们一般倾向于用一些 IDE (集成开发环境)来进行程序编写,以提高效率,缩短开发周期。

Page 18: 《 增量式模块化程序设计 》

IDE 介绍 ( 1 ) Borland 的 JBuilder 有人说 Borland 的开发工具都是里程碑

式的产品,从 Turbo C 、 Turbo Pascal到 Delphi 、 C++ Builder都是经典, JBuilder 是第一个可开发企业级应用的跨平台开发环境,支持最新的 Java 标准,它的可视化工具和向导使应用程序的快速开发变得可以轻松实现。

Page 19: 《 增量式模块化程序设计 》

IDE 介绍 ( 2 ) IBM 的 Eclipse Eclipse 是一种可扩展的开放源代码 IDE ,

由 IBM 出资组建。 Eclipse框架灵活、扩展容易,因此很受开发人员的喜爱,目前它的支持者越来越多,大有成为 Java第一开发工具之势。

Page 20: 《 增量式模块化程序设计 》

IDE 介绍 ( 3 ) Oracle 的 JDeveloper JDeveloper 的第一个版本采用的是买的

JBuilder 的代码设计的,不过已经完全没有了JBuilder 的影子了,现在 JDeveloper 不仅仅是很好的 Java 编程工具,而且是 Oracle Web 服务的延伸。

Page 21: 《 增量式模块化程序设计 》

IDE 介绍( 4) Symantec 公司的 Visual Cafe for Java 很多人都知道 Symantec 公司的安全产品,但很少人知道 Symantec 的另一项堪称伟大的产品: Visual Cafe ,有人认为 Visual Cafe 如同当年 Delphi超越 Visual Basic 一样,今天,它也超越了 Borland 的 Delphi 。

Page 22: 《 增量式模块化程序设计 》

IDE 介绍 ( 5 ) IBM 的 Visual Age for Java 一款非常优秀的集成开发工具,用惯了

微软开发工具的朋友在开始时可能会感到非常不舒服,因为 Visual Age for Java采取了与微软截然不同的设计方式,为什么会这样呢?那是因为蓝色巨人怎么能跟着微软的指挥棒转呢?!

Page 23: 《 增量式模块化程序设计 》

IDE 介绍 ( 6 ) Sun 公司的 NetBeans 与 Sun Java St

udio 5 以前叫 Forte for Java ,现在 Sun将其统一称为 Sun Java Studio 5 ,出于商业目的Sun将这两工具合在一起推出,不过他们的侧重点是不同的。

Page 24: 《 增量式模块化程序设计 》

IDE 介绍 ( 7 ) Macromedia 公司的 JRUN 提起 Macromedia 公司你肯定知道 Flash 、

PhotoShop ,但很少人知道他还有一款出色的Java 开发工具 JRUN , JRun 是第一个完全支持 JSP 1.0 规格书的商业化产品。

Page 25: 《 增量式模块化程序设计 》

JDK

综上,我们看到可以用来开发 Java 的利器很多,它们仅仅是集成的开发环境,而在这些环境中,其实有一样东西是共同的,也是最核心和关键的,那就是 JDK ( Java Development Kits ),中文意思是 Java 开发工具集, JDK 是整个 Java 的核心,包括了 Java运行环境( Java Runtime Envirnment ),一堆 Java 工具和 Java基础的类库 (rt.jar) 等,所有的开发环境都需要围绕它来进行,缺了它就什么都做不了。

Page 26: 《 增量式模块化程序设计 》

建议 对于初学者而言,我们的建议是: JDK+记事

本就 OK 了!因为掌握 JDK 是学好 Java 的第一步也是最重要的一步。

首先用记事本来编辑源程序,然后再利用 JDK来编译、运行 Java 程序。这种开发方式虽然简陋,但却是大家学好 Java 语言本身的好途径。

Page 27: 《 增量式模块化程序设计 》

1.4 Java 程序开发步骤 2.4.1 软件安装 最主流的 JDK 是 Sun 公司发布的 JDK ,因此本书采用 Sun 的 JDK ,它可以从 Sun 公司的网站上( http://java.sun.com )免费下载。

对于普通 Java 开发人员和一般学习者来说,选用标准版 J2SE 就可以了,学会了 J2SE ,再学 J2ME或 J2EE 就比较容易上手,因为它们之间虽有所侧重,但相似之处很多,尤其是语言本身是一样的,都是 Java 。

Page 28: 《 增量式模块化程序设计 》

软件安装

这里我们采用 J2SE 1.4 的版本,从网络上下载到 j2sdk-1_4_0_03-windows-i586.exe 这个安装软件(注意:安装软件必须是针对 windows 平台上的,不要下错了,因为 Sun 网站上也提供了其他平台的安装包,如针对 Linux 等的),下面就可以开始安装了。

Page 29: 《 增量式模块化程序设计 》

软件安装安装工作实际上分为两个步骤。安装程序首先会收集一些信息,用于安装的选择,然后才开始拷贝文件,设置Windows 注册表等具体的安装工作。安装过程中,读者只需按照提示一步一步操作即可,假定我们的安装目录设置为 C:\jdk1.4 (注意:后面配置环境变量时要用到)。

安装完毕后,切换至 C:\jdk1.4 目录,我们可以发现有一些子目录。

Page 30: 《 增量式模块化程序设计 》

安装目录信息 ( 1 )“ bin”文件夹 “bin”文件夹中包含编译器( javac.exe )、解释

器( java.exe )、 Applet 查看器( appletviewer.exe )等 Java命令的可执行文件。

Page 31: 《 增量式模块化程序设计 》

安装目录信息 ( 2 )“ demo”文件夹 “demo”文件夹中包含一些源代码的程序示例。 ( 3 )“ lib”文件夹 “lib”文件夹存放一系列类库。 ( 4 )“ jre”文件夹 “jre”文件夹存放 Java运行时可能需要的一些可执行文件和类库。

( 5 )“ include”文件夹 该文件夹存放一些头文件。

Page 32: 《 增量式模块化程序设计 》

1.4.2 环境变量配置 环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。在 Windows操作系统中环境变量的设置操作如下:

Page 33: 《 增量式模块化程序设计 》

需要配置两个用户变量: path 和 classpath 新建(若无) classpath 用户变量,设置变量值为“ C:\jdk1.4\lib” ,此外,当运行自己编写的 Java 程序时,一般还需要将相应的工作目录也添加到 classpath 的变量值中,以便程序运行时能找到所编写的 Java 类。

Page 34: 《 增量式模块化程序设计 》

1.4.3 编译运行

设置好环境变量后,就可以在 Dos命令行模式下进行编译和运行操作。

下面假定程序 Hello.java 存放在“ F:\ 工作目录”路径 ;

打开 Dos命令窗口进入到工作目录,然后再运行“ javac Hello.java”命令 ;

源程序编译成功,系统自动在工作目录下生成一个字节码文件 Hello.class ,这是一个二进制格式的文件,供解释运行时用;

编译成功后,就可以进行程序的运行了。运行 Java程序的命令为“ java Hello” 。

Page 35: 《 增量式模块化程序设计 》

提示 不以 .java 为扩展名的源程序文件是一个错误 。 开发 Java 程序时,开发人员必须用到 JDK ,而运行或使用 Java 程序时,用户则只需要有 JRE( Java Run-time Environment) Java运行时环境即可。

一般在装 JDK 时, JRE也跟着一起安装了,因此对于不开发 Java 程序的普通用户来说,只要到网络上下载专门的 JRE软件进行安装,即可运行Java 程序。

Page 36: 《 增量式模块化程序设计 》

1.5 小结

( 1 )下载 JDK软件并安装; ( 2 )配置相应的环境变量 ( path 和 classpath ); ( 3 )编写 Java源程序(文本编辑器或集成开发环境); ( 4 )编译 Java源程序,生成字节码文件 ( javac *.java ); ( 5 )执行字节码文件 ( java 字节码文件名)。

Page 37: 《 增量式模块化程序设计 》

作业 1 3 5