Java语言程序设计
合肥工业大学计算机系
刘政
参考读物
? Thinking in Java(中文书名,Java编程思
想), Bruce Eckel著
? Java2核心技术 卷 I:原理(第 5版), Cay
S.Horstmann,Gary Cornell 著
第一章 Java语言概述
?Java语言历史及发展
?Java语言的特点
?设置 Java开发环境
?构建 Java程序
1.1 Java语言历史及发展
?Java的起源
?1991年,Sun公司为消费电子产品开发一个名为,Oak”
语言的软件,在安全和可移植性上有所增强。
?到 1994年下半年,Internet发展迅猛,Sun公司把 Oak的
技术应用于网络,定名为 Java
?1995年,Sun正式发布 Java语言,Microsoft,IBM、
NETSCAPE等公司纷纷购买 Java语言的使用权
?1996年,Sun专门成立 JavaSoft分公司来开发 Java。当
年并且召开了全球第一届 JavaOne大会,与会者达 20000
人。
?Java的发明人,Games Gosling
1.1 Java语言历史及发展
?Java+XML为电子商务提供解决方案
?分布式计算,Jini
?消费电子领域,KVM,Personal Java,Embeded Java
?交互式电视,JavaTV
?实时 Java,Real Time Java
?Peer2peer,JXTA
?J2EE和 J2ME的广泛应用
?Java的发展动态
1.1 Java语言历史及发展
?Java的版本变更
Java 1.02 -----first official release
Java 1.2
Java 1.3
Java 1.4
Java 1.5 ------Java 5.0 or Java 5 or,Tiger”
Java 2
1.1 Java语言历史及发展
?版本之间的差别
Java 1.02
250 classes
slow
lots of bugs
Java 1.02
500 classes
a little faster
friendlier,becomi
ng popular
Java 2
2500 classes
much faster
powerful
languages for
enterprise and
mobile
applications
Java 5
3500 classes
more
power,easier to
develop with,
lots of bugs
1.2 Java语言的特点
? Java的设计目标
? Java的关键特点
Java语言的设计目标 (1)
? 创建一种面向对象的程序设计语言
? 提供一个程序运行的解释环境,使程序独立
于平台
? 吸收 C和 C++的优点,使程序员接收
? 去除 C和 C++中影响程序健壮性的部分,例如
指针,内存的申请和释放
Java的设计目标( 2)
? 提供多线程机制
? 提供动态下载代码的机制
? 提供代码检验机制以保证安全性
三个实现机制
? 虚拟机 (Java virtual machine)
? 无用内存收集 (Garbage Collection)
? 代码安全性检测 (Code Security)
Java虚拟机
? 虚拟机是由软件模拟的计算机,也相应地具
备计算机的一般功能,如接收输入并且输出
等。 Java虚拟机所执行的指令存储在,class文
件里。
? Java编译器 (javac)负责产生,class文件。
? Java解释器负责在特定的平台上运行文件。
? 虚拟机处理程序的过程
源程序 编译器 字节码
解释
器 1
解释
器 2
Java的主要特点( 1)
? 简单
? 一切都是对象
? 分布式
? 健壮性
? 安全
? 可移植性
Java的关键特点 (2)
? 解释型
? 动态
? 多线程
1.3 设置 Java编程环境
? 安装 JavaSDK- jdk1.5.0_01
? 手工设置执行路径 (假设你的 jdk的安装路径是
c:\jdk)
? 在 Windows95/98,需要在 Autoexec.bat文件末尾增加以下代码,
set path=c:\jdk\bin;
? 在 Win2000或以上,在 系统属性 中找到用户 环境变量 中的 PATH变量,
在其中添加,c:\jdk\bin;
1.4 构建 Java程序
Java的程序分类,
?Java Application,以 main()方法为程序入口,
由 Java解释器加载执行。
?Java Applet:通过 Java兼容的浏览器或是
appletviewer命令加载执行。它是 Java最早获
得成功的应用。
一个基本的过程
public class Hello
{
public static void
main
(String[] args)
{
System.out.println(
"Hello");
}
}
Hello.class
……,
……,
……,
Source
1
Compiler
2
Output
( bytecode)
Virtual
Machines
3
4
第一个 Java应用程序
? 打开记事本或其他的文本编辑器,输入下面的代码,
public class Hello//主类
{
public static void main(String[] args)
{
System.out.println("Hello");
}
}
? 将文件保存为 Hello.java,注意大小写是敏感的,文件名必
须严格和类名相一致,不可以存为 hello.java。
程序结构分析
? 类定义
public class hello
{//用大括号包围整个类定义
…,
}
? main()方法,Java程序的入口。它有固定的书写形式
public static void main(String[] args)
{
…,
}
source file
class
file
class file
method1
method2
程序结构分析( 2)
? 程序体:在 main方法体内完成要实现的功能。在该程序里是这样的,
System.out.println(“hello”);
? 语句的注释,与 C++里一样,
public class hello //主方法
或者
/*
……,这里是注释 ………
*/
第一个 Java应用程序的编译执行 (2)
? 在命令行窗口,输入(假设文件位于 d:\java)
d:\java\javac hello.java
即进行 Java源程序的编译。如果程序无问题,
编译器会生成后缀名为,class的字节码文件,
此时,可以执行之,
d:\java\java hello
(不需要带后缀)
Java 小程序
? 编写下面的代码
import java.awt.*;
import java.applet.*;
public class HelloWorldApplet extends Applet{
public void paint(Graphics g){
g.drawString(“HelloWorld!”,20,20);
}
}
? 将文件存为 HelloWorldApplet.java
? 注意到 applet程序没有 main()入口,必须编写 Html文件,将该 Applet嵌入其中。
<html>
…,
<body>
<applet code=“HelloWorldApplet.class” width=150 height=25>
</applet>
</body>

</html>
? 用 javac编译,并使用 appletviewer观看结果,
appletviewer HelloWorldApplet.html
applet结构分析
? import语句
? 在程序中用到了标准类库或自定义包中的类,须用 import
语句来声明
? 可以用来声明类,也可以用来声明包,如 import
java.awt.*
? 引用类或者包时,将沿着 classpath开始寻找相应的,class
文件,因此需要设置相应的环境变量 classpath,
classpath=c:\jdk1.5\lib;c:\work
例如 import HelloApp,需要从当前目录和 classpath里的目录
里搜寻 HelloApp.class文件。
applet结构分析
? 继承( extends)
? 在 Java语言中,继承是通过 extends关键字实现的
? 使用继承时,相当于创建了一个新类。这个新类不
仅包含了现有类型的所有成员(尽管 private成员被
隐藏起来,且不能访问),但更重要的是,它复制
了基础类的接口。也就是说,可向基础类的对象发
送的所有消息亦可原样发给衍生类的对象
Java源程序结构
? 命名:文件的命名由该文件中的 public类名所
决定。
? 类个数:一个源文件只能有一个 public类,其
他的类则不限。
Java程序规范
? 类名:首字母大写,每个单词的首字母也大
写,例如 class HelloWorldApp
? 方法名:一般是动词。小写字母开头,后随
单词首字母大写,例如 balanceAcount()
? 变量名:全小写