java 程序设计与应用开发

50
南南南南南南 Java 南南南南南南南南南 南南南南 南南南 南南南南[email protected] 南南南南南南http:// www.csbio.sjtu.edu.cn/members/ydj /

Upload: wesley-wallace

Post on 03-Jan-2016

136 views

Category:

Documents


0 download

DESCRIPTION

Java 程序设计与应用开发. 任课教师:於东军. 电子信箱: [email protected] 课件下载地址: http://www.csbio.sjtu.edu.cn/members/ydj/. Java 程序设计与应用开发. 於东军 杨静宇 李千目 等. 清华大学出版社. 第一章 快速入门. 1.1 Java 简介 1.2 Java 开发环境的构建 1.3 Java 应用程序 1.4 Java Applet. 1.1 Java 简介. 1.1.1 发展简史 1.1.2 Java 的特点. 1.1.1 发展简史. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Java 程序设计与应用开发

南京理工大学

Java 程序设计与应用开发

任课教师:於东军

电子信箱: [email protected]课件下载地址: http://www.csbio.sjtu.edu.cn/members/ydj/

Page 2: Java 程序设计与应用开发

南京理工大学

Java 程序设计与应用开发

於东军 杨静宇 李千目 等

清华大学出版社

Page 3: Java 程序设计与应用开发

南京理工大学

第一章 快速入门1.1 Java 简介

1.2 Java 开发环境的构建

1.3 Java 应用程序

1.4 Java Applet

Page 4: Java 程序设计与应用开发

南京理工大学

1.1 Java 简介

• 1.1.1 发展简史 • 1.1.2 Java 的特点

Page 5: Java 程序设计与应用开发

南京理工大学

1.1.1 发展简史

• 雏形:二十世纪九十年代初, SUN 出于智能家电项目的需求推出的一种面向对象的“可移植” 语言。

• 1995 年,使用 Java 语言开发出了一个浏览器- HotJava ,并获得了极大的成功。引发了世界范围内的 Java 热,至今未衰。

• 1998 年 Java1.2 版本的出现, Java 成为现代开发工具中的利器。

• Java 现在的体系结构可以分为三大块, J2SE (Java 2 Platform Standard Edition) 、 J2EE(Java 2 Platform Enterprise Edition) 和 J2ME(Java 2 Platform Micro Edition) 。

Page 6: Java 程序设计与应用开发

南京理工大学

Java 创始人 James Gosling

Java 带给 Sun 的只有声誉为智能家电开发的 Java ,不想“有心栽花花不开,无心插柳柳成荫”,在家电市场毫无起色,却因其“一次编程,到处运行”的跨平台特性,赶上了互联网的高速发展时机,在企业级市场上大放异彩。

2010 年,美国数据软件巨头甲骨文公司 (Oracle) 宣布以 74 亿美元收购太阳微电子公司 (SUN).

Page 7: Java 程序设计与应用开发

南京理工大学

Java 能做什么: Java Demo 演示

• JFC• Java 2D• SwingSet

Page 8: Java 程序设计与应用开发

南京理工大学

1.1.2 Java 的特点

• 简单、面向对象面向对象、分布式、解释型语言、 健壮性 、安全性 、结构中立 、可移植性 、 高性能 、多线程 、动态• 更多内容参见 Java 白皮书

Page 9: Java 程序设计与应用开发

南京理工大学

简单• Java 语法要比 C++ 的语法简单。 Java 剔除了 C++ 中那些复杂而且

不常使用的语法特性,例如操作符重载、多重继承等等。熟悉 C++的读者在学习 Java 时,很多时候需要做的就是设法“忘记” C++ 中的一些语法规则。

• 对于没有编程经验的读者来说, Java 还是具有相当难度的。一方面 Java 有一些奇怪的语法 ( 如匿名内部类 ) ,另一方面需要自己编写大量的代码 ( 习惯“拖”控件编程的需要一个适应过程 ) 。

• 建议初学者使用文本编辑工具自己手工编写代码。通过这种方式,读者可以尽快熟悉 Java 语法并强化了记忆。

Page 10: Java 程序设计与应用开发

南京理工大学

面向对象• 面向对象是现代编程语言的重要特性之一。历史的经验已经表明,面

向对象技术极大地提高了人们的软件开发能力。现在很难想象还使用纯粹的面向过程的语言去开发大型、复杂的项目。 Java 语言是一种纯粹的面向对象的语言,在面向对象一些问题的处理上要优于 C++( 如多重继承 ) 。习惯于传统面向过程的读者在刚理解面向对象的概念时,会存在一定的困难。但是考虑到面向对象的优越性,在这方面花点精力是值得的。

Page 11: Java 程序设计与应用开发

南京理工大学

健壮性 • Java 语言的设计目标之一,就是帮助程序员编写出高可靠性的程

序。为此, Java 语言提供了很多技术用以提高程序的可靠性,如数组越界检查、运行时类型检查、取消指针操作以及垃圾自动回收等等。

• C/C++ 中指针具有强大的功能和灵活性。也正是这个原因,指针运算成为程序不稳定的最大隐患之一。而有些语言,例如 Basic ,没有显式的指针,这又会使得在实现某些功能时变得困难 ( 如实现自己定制的数据结构 ) 。 Java 语言同时考虑到这两方面的问题,提出了一个很好的解决方法:可以有指针,但是取消了指针的运算。这样上面的两个问题便迎刃而解。

• Java 中并不是没有指针了, Java 中的引用其实就是指针,只是取消了指针运算。取消指针运算防止了内存泄漏的可能性。

Page 12: Java 程序设计与应用开发

南京理工大学

可移植性• 跨平台:在不同的操作系统上源代码不做修改就能得到相同的运

行结果。• 以数据类型说明可移植性问题:同一数据类型在不同平台上的大小是不一样的。有的平台上整型 (int) 用 16位二进制来表示,而有的平台上却是用 32位二进制来表示。这样一个在用 32位二进制来表示整数的平台上开发的程序拿到用 16位二进制表示整数的平台上去运行,很可能就会产生溢出问题。 Java 中使用固定大小的数据类型解决了这个问题,例如整型始终用 32位来表示,和底层平台的转换由 Java虚拟机来完成。

• 可移植性问题不仅仅存在于数据类型大小不一致,其他方面如图形界面的显示、多线程等都存在可移植性问题。确实, Java 在可移植性上已经取得了极大的成功,但还不够完善。然而,这并不能掩盖 Java 在这方面所做的贡献以及其他诸多的优点。

Page 13: Java 程序设计与应用开发

南京理工大学

多线程• 具有多线程处理能力可以使得应用程序能够具有更好的交互性、实时性。 Java 在多线程处理方面性能超群,同时也非常简单。有过 C++ 多线程编程经验的读者,一定会对 Java 的多线程编程之简单感到惊叹。 Java 中多线程的实现是由操作系统或是线程库来完成的,编程人员在不同平台上使用多线程的 Java 代码是完全相同的。正是由于 Java 中使用多线程的简单性,使得它成为服务器端应用程序开发的利器。

Page 14: Java 程序设计与应用开发

南京理工大学

Java 平台• Java 不仅仅是一种编程语言,它还是一个平台 (Platform) 。所谓平

台是指应用程序运行的软硬件环境,通常是操作系统和硬件的总称。例如 Windows 2000, Linux, Solaris 等等都是不同的平台。 Java 平台是运行在这些平台之上的纯粹的软平台 ,由两大部分组成: Java虚拟机和 Java 应用程序接口 (Java API) 。图 1.1.1显示了 Java 平台,从图中我们可以看出, Java 应用程序是和底层的操作系统 (基于硬件的平台 ) 相隔离的,它们之间是通过 Java 平台来进行通信的。

Page 15: Java 程序设计与应用开发

南京理工大学

Java 平台 -图

Java 应用程序

Java API

Java 虚拟机

操作系统 (基于硬件的平台 )

Java 平台

Page 16: Java 程序设计与应用开发

南京理工大学

1.2 Java 开发环境的构建 • 1.2.1 Java 开发包的安装 • 1.2.2 环境变量设定 • 1.2.3基本 DOS命令

Page 17: Java 程序设计与应用开发

南京理工大学

基本要求• Java 开发包 + 纯文本编辑器 • Java 开发包 : JDK• 写字板、 UltraEdit 等• TextPad 、 JCreator 、 JBuiler 、 VisualAge 、 Eclipse 等

Page 18: Java 程序设计与应用开发

南京理工大学

1.2.1 Java 开发包的安装

• Step 1: 从 http://www.sun.com 获取免费的 Java 开发包安装程序 • Step 2:双击 Java 开发包安装程序,出现安装界面

Page 19: Java 程序设计与应用开发

南京理工大学

Java 开发包的安装 -1

• Step 3:随后,安装程序会弹出许可证协议阅读画面

Page 20: Java 程序设计与应用开发

南京理工大学

Java 开发包的安装 -2

• Step 4: 选择接受协议条款,然后点击“下一步”按钮,出现安装类型选择画面

Page 21: Java 程序设计与应用开发

南京理工大学

Java 开发包的安装 -3

• Step 5: 点击选中自定义,然后点击“下一步”按钮,出现下图所示的自定义安装内容选择画面

安装路径

安装内容选择

安装路径选择

Page 22: Java 程序设计与应用开发

南京理工大学

Java 开发包的安装 -4

• Step 6: 点击“下一步”按钮进入正式安装。其他版本的开发包安装过程中除了显示画面略有不同,其他方面类似

Page 23: Java 程序设计与应用开发

南京理工大学

1.2.2 环境变量设定

• PATH -路径环境变量,用来指定 Java 开发包中的一些可执行程序( 如 java.exe 、 javac.exe 等 )所在的位置。

• CLASSPATH -类路径环境变量,参见第四章。

Page 24: Java 程序设计与应用开发

南京理工大学

PATH 设定之一 (Windows 2000/NT/XP )

( 1)右击“我的电脑”,在弹出菜单中选择“属性”,出现系统属性对话框,

Page 25: Java 程序设计与应用开发

南京理工大学

PATH 设定之一 (Windows 2000/NT/XP ) ( 2)选择“高级”属性页,在该属性页面中有一个“环境变量”按钮,点击该按钮进入环境变量编辑窗口

Page 26: Java 程序设计与应用开发

南京理工大学

PATH 设定之一 (Windows 2000/NT/XP ) ( 3)在系统变量区域找到变量 Path ,双击该行就可以编辑该环境变量的值。在该变量已有的值后追加 “ ;c:\jdk1.4\bin”(注意:不包括引号,分号不能缺少, c:\jdk1.4 是开发包的安装路径,如果安装到其他路径,需作相应修改 ) ,点击“确定”按钮进行保存工作。至此,完成了 Path 环境变量的设定工作。所追加的值是用来指定 Java开发包中的一些可执行程序 ( 如编译、解释以及调试等可执行的工具程序 )所在的位置的。

Page 27: Java 程序设计与应用开发

南京理工大学

PATH 设定之二 (Windows 95/98/ME)

在 AUTOEXEC.BAT 文件末尾追加如下的一行代码:SET PATH=c:\jdk1.4\bin;%PATH%

然后重新启动计算机,使得设置生效。

Page 28: Java 程序设计与应用开发

南京理工大学

PATH 设定之三 Unix(包括 Solaris 和 Linux)

在 Unix(包括 Solaris 和 Linux) 操作系统中依据所使用的 shell 不同,设定 PATH 的方法也有所不同。例如,若使用的是 C shell ,则向~/.cshrc 文件末尾追加如下代码:

set path=(/usr/local/jdk1.4/bin $path)

Page 29: Java 程序设计与应用开发

南京理工大学

1.2.3基本 DOS命令 如何进入 DOS控制台窗口 这里以 Window200 为例,点击“开始”→“运行”,在弹出的对话框中输入“ CMD” ,点击“确定”,即可进入 DOS控制台窗口。

需要注意的,这种方式进入 DOS控制台窗口后,当前目录为系统缺省目录,如果你想转换到其他盘符,例如 D: ,可以在提示符后输入“ D:” ,然后回车就转换到 D:盘了。

Page 30: Java 程序设计与应用开发

南京理工大学

DOS命令简介

DIR [ 功能 ] 显示目录中的文件以及子目录。CLS [ 功能 ] 清除屏幕DEL [ 功能 ] 删除一个或是多个文件。MD [ 功能 ] 创建目录。COPY [ 功能 ] 文件复制,将一份或多份文件复制到另一个 位置。HELP [ 功能 ] 帮助EXIT [ 功能 ] 退出 DOS窗口。

Page 31: Java 程序设计与应用开发

南京理工大学

1.3 Java 应用程序

( 1)编写源代码 代码输入完毕后,将其保存成一个文件,取名为HelloWorld.java 。

并存放到一个指定的目录中去

( 如 F:\Chapter01\code) 。

Page 32: Java 程序设计与应用开发

南京理工大学

观察• 可以发现目录 F:\Chapter01\code 中有一个文件,名字为 HelloWo

rld.java ,这就是我们刚才保存的源代码文件

源代码文件

输入的dir命令

Page 33: Java 程序设计与应用开发

南京理工大学

编写源代码注意事项

• √ 由于 Java 编译器和解释器对于代码中的字符是大小写敏感的,所以您在按照本书内容输入代码、命令以及文件名时,注意大小写是否正确。

• √ 该文件名必须是 HelloWorld( 和公开类的类名相同,并且大小写也要一样,这是由 Java 编译器和解释器是大小写敏感而决定的 ) ,并且扩展名一定是 .java 。

Page 34: Java 程序设计与应用开发

南京理工大学

1.3.2 编译源代码 • 在命令提示行输入以下命令并回车: javac HelloWorld.java

Page 35: Java 程序设计与应用开发

南京理工大学

观察• 如果屏幕上没有出现错误提示,则表示已经正常完成了编译工作。再

次使用 DIR命令,可以发现目录下多了一个文件 HelloWorld.class ,即编译好的中间字节代码 (bytecode) 文件

中间字节代码

Page 36: Java 程序设计与应用开发

南京理工大学

1.3.3 运行程序 • 在命令提示行输入: java HelloWorld

Page 37: Java 程序设计与应用开发

南京理工大学

1.3.4 常见问题解答 • (1) Windows 系统对于 DOS命令中字符的大小写是不敏感的。例如:输入 DIR 、 dir或是 Dir 得到的结果是相同的。

• (2) Java 编译器和解释器对于代码中的字符是大小写敏感的。所以在输入代码时要特别注意字符的大小写,例如 HelloWorld 和 helloWorld 是不同的,同样 public 和 Public也是不同的。

Page 38: Java 程序设计与应用开发

南京理工大学

常见问题-续 1• ( 3)保存源代码为文件时,要注意文件的命名。文件名一定要和源

代码中公开类的类名一致 (包括大小写 ) ,并且文件扩展名必须为 .java 。注意,如果将例 1.3.1 中的 public class HelloWorld改为 class HelloWorld(即HelloWorld 不再是公开类 ) ,则可以将其保存为任何一个合法的、并以 .java 为扩展名的文件,例如 NotHelloWorld.java 。

Page 39: Java 程序设计与应用开发

南京理工大学

常见问题-续 2• ( 4)如果在进行编译时报类似如下错误 ( 如果读者使用的是英文版

的操作系统,错误信息将是英文 ) :

'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。 则表示系统不能正确定位编译器 javac.exe ,原因是未能正确设定 PA

TH 环境变量。请参考 1.2.2小节关于环境变量的设置。

Page 40: Java 程序设计与应用开发

南京理工大学

常见问题-续 3

• 编译时,需要用文件的全名,例如 javac HelloWorld.java;解释运行时只需要用类名,而不需要带上 .class ,例如 java HelloWorld 。如果输入:

java HelloWorld.class 那么系统报如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

Page 41: Java 程序设计与应用开发

南京理工大学

1.3.5 理解例子 • Java 代码中具有三种类型的注释: (1) 单行注释 // comments 从 // 至该行结束的内容是注释部分,编译器予以忽略。 (2) 多行注释 /* comments */ 在 /* 和 */之间的所有内容均为注释部分,位于 /* 和 */之间的内容可

以是一行或是多行。

Page 42: Java 程序设计与应用开发

南京理工大学

• (3) 文档注释 / ** comments line 1 * comments line 2 * ... * comments line n */

Page 43: Java 程序设计与应用开发

南京理工大学

类定义 & main 方法 public class HelloWorld{ ... }

public static void main(String[] args){ ... }

Page 44: Java 程序设计与应用开发

南京理工大学

命令行参数 &输出语句• public static void main(String[] args )• System.out.println(String s)

Page 45: Java 程序设计与应用开发

南京理工大学

1.4 Java Applet

• Applet称为小应用程序,和应用程序不同的是, Applet 一般是在支持 Java 的 Web 浏览器中运行。使用特定的 HTML标签 (tag)将 Applet嵌入在 HTML页面中,并且 Applet 程序和页面均存放在服务器上,当远程用户通过浏览器来访问页面时,页面中所嵌入的 Applet 程序通过网络被下载到浏览器中并加以运行

Page 46: Java 程序设计与应用开发

南京理工大学

1.4.1 编写 Applet 源代码

import javax.swing.JApplet;// 引入 JApplet类import javax.swing.JLabel; // 引入标签类 JLabelpublic class HelloWorldApplet extends JApplet{ public void init(){ System.out.println("init Applet"); } public void start(){ System.out.println("start Applet"); getContentPane().add(new JLabel("HelloWorldApplet")); } public void stop(){ System.out.println("stop Applet"); } public void destroy(){ System.out.println("destory Applet"); } }

Page 47: Java 程序设计与应用开发

南京理工大学

四个方法• init() - 打开嵌有 Applet 的 HTML页面时,该方法被调用以进行必要的初始化工作。

• start() - 该方法在 init 方法结束后被调用,用以启动 Applet 。• stop() - 关闭嵌有 Applet 的 HTML页面时,该方法自动调用,以关闭 Applet 。

• destroy() - stop 方法执行完毕后,该方法被调用,用以释放 Applet所使用的资源。

Page 48: Java 程序设计与应用开发

南京理工大学

1.4.2 编写嵌入 Applet 的 HTML 文件 例 1.4.2 HelloWorldApplet.html<html><title>A Simple Applet Example</title><body>This is a simple applet.<p><applet code="HelloWorldApplet.class" width="150" height="15

0"></applet></body></html>

Page 49: Java 程序设计与应用开发

南京理工大学

1.4.3 运行 Applet • 运行应用程序使用的是 java 解释器。而运行小应用程序则使用 Appl

et查看器或是 WEB 浏览器。 • (1) 使用 appletviewer 在 DOS命令行输入如下命令并回车: appletviewer HelloWorldApplet.html

Page 50: Java 程序设计与应用开发

南京理工大学

运行 Applet-续 1

• 使用 WEB 浏览器,例如 Internet Explorer 直接使用 WEB 浏览器打开页面文件 HelloWorldApplet.html