Lesson 2,Programming Basic
(Java程序设计基础 )
LiFan(李凡)
Chengdu University of Information Technology
The Department Of Computer Science
2005
面向对象程序设计 (OOP)
? Compart and Conquer (分而置之 )
系统
子系统 子系统 子系统 子系统 子系统
类 类 类 类 类
数据集 方法集
面向对象程序设计 (OOP)
? 类、对象
类 (class) —— 根据特定的设计考虑将数据和方法组
织在一起的一个模板,是构成系统或参与计算的逻
辑组件,用它可以创建对象。类也可以看作是对象
的数据类型。
对象 (object) —— 类的实例,也可看作是类的变量
。一个类可以创建多个对象,每个对象都有一份独
立的数据拷贝,可以使用类中的方法来访问或修改
对象,对一个对象的修改并不影响其它对象。
面向对象程序设计 (OOP)
? 域、方法
域 (field) —— 类中声明的变量,域可分为类的域 (
保留字 static修饰的域 )和对象的域。
方法 (method) —— 类中声明的函数,方法可分为
类的方法 (保留字 static修饰的方法 )和对象的方法。
问题
写一个程序打印斐波拉契 (Fibonacci) 数
列,数列的长度可以由输入指定。
斐波拉契 (Fibonacci) 数列是的前两项分
别是 1和 1,后续各项分别是前面两项的和。
1 1 2 3 5 8 13 21 34 ……
长度 5 长度 9
思路
? 用一个类来表示斐波拉契数列,用类的对象
来表示一个具体的数列
? 长度是数列的属性,类中应有一个域来表示
数列的长度,并且这个域对于每个对象都是
独立的
? 打印数列是操作数列的一种方式,类中应有
一个方法来提供这项操作,并且这个方法应
是针对每个对象的
? 提供一种接收输入数据的方式
Fibonacci类
public class Fibonacci
{ private int length;
public Fibonacci(int len){
length=len;
}
public void print(){
int lo=1;
int hi=1;
System.out.println(lo);
for(int i=0;i<length-2;i++){
System.out.println(hi);
hi=hi+lo;
lo=hi-lo;
}
}
}
类头 (class head)
类体 (class body)
类体 部分声明了类或
类的对象将使用的变
量 (域 ) 和类或类的对
象可以提供的方法。
类头 部分用于声明类
、指定类的名称、指
定类的可见性以及类
的可扩展性 。
声明整数类型的变量 length
声明打印数列的方法 print
声明类的构造函数
类的 main方法
? main方法必须声明为以下格式,
? main方法是程序执行时第一个被执行的
方法
? 以 main方法作为执行起点的 Java程序又
称为 Java Application
public static void main(String[] args) { …… }
Fibonacci类的 main方法
? 在 main方法中接收程序执行时传入的参数,然后
创建 Fibonacci类的对象,执行对象的 print方法打印
出指定长度的数列
public class Fibonacci
{
……
public static void main(String[] args){
int len=Integer.parseInt(args[0]);
Fibonacci fibo=new Fibonacci(len);
fibo.print();
}
}
将传入的参数转换为
整数,作为数列的长

创建 Fibonacci类的
对象 fibo 调用 fibo对象的 print方法
保存 Fibonacci类
? Java语言的源程序文件以,java”作为文件名
的后缀
? 每一个可见性为 public的类都应保存为以类
名作为文件名 (字母的大小写敏感 ),以
,java”作为后缀的文件
? 每一个源程序文件中可以声明一个或多个类,
但只能有一个 public的类
Fibonacci.java
Environment Variable (环境变量 )
? 环境变量也称为系统变量,是由操作系统提
供的一种与操作系统中运行的程序进行通信
的机制,一般可为运行的程序提供配置信息
? 环境变量一般为“名字、值”对,在 Shell编
程中以 ${变量名 }来取某变量的值
? 常用的 Java环境变量包括,
JAVA_HOME CLASSPATH PATH
环境变量 — JAVA_HOME
? 环境变量 JAVA_HOME的值应设置为 JDK的
安装目录的路径,如在 Windows平台上 JDK
的安装目录为,C:\j2sdk1.4.2_08”,则
? JAVA_HOME为那些需要使用 Java命令和
JVM的程序提供了通用的路径信息
JAVA_HOME = C:\j2sdk1.4.2_08
环境变量 — CLASSPATH
? 环境变量 CLASSPATH的值一般为一个以分
号,;”作为分隔符的路径列表,如
? 当执行 Java程序时,执行命令会首先把类名
转换为字节码文件的路径信息,再在环境变
量 CLASSPATH的值的路径列表的每个路径
及其子路径中搜索指定的字节码文件,如果
在所有路径都找不到该文件,就报告错误
CLASSPATH=d:\path1;e:\path2;…
环境变量 — PATH
? 环境变量 PATH是操作系统使用的变量,用
于搜索在 Shell中输入的希望执行的命令
? 为了便于使用,一般可把 JDK中 Java命令程
序所在的目录的路径加入 PATH变量的值中,
如,
PATH=…;C,\j2sdk1.4.2_08\bin
Java Command (Java命令 )
? Java命令是 JDK中附带的一组可执行的程序,主要
用于 Java程序的编译、执行及其它用途
? Java命令位于 JDK的安装目录的子目录,bin”中,
可以通过环境变量 JAVA_HOME来表示命令的位

? 在 Windows平台上,Java命令通常在命令行窗口中
执行
${JAVA_HOME}/bin
Java命令列表
? javac — Java编译器程序,负责创建源程序的字节
码文件 (类名,class文件 )
? java — JVM的启动程序,用于执行编译好的 Java
程序
? javaw — 与 java命令功能相同,使用它启动 Java程
序时命令行窗口自动关闭,一般用于执行 GUI程序
? javadoc — Java帮助文档自动生成器,用于从 Java
源文件生成 API文档 HTML页
? javap — Java 类文件解析器,用于从字节码文件
察看类的域和方法信息
Java命令列表
? javah — C 头文件和 Stub 文件生成器。 javah 从
Java 类生成 C 头文件和 C 源文件。这些文件提供
了连接胶合,使 Java 和 C 代码可进行交互。
? appletviewer — Java applet 浏览器。 appletviewer
命令可在脱离万维网浏览器环境的情况下运行
Applet程序
? jar — Java归档工具,可将多个文件压缩为单个
JAR归档文件。
Tips:如果你希望了解一个 Java命令的详细用法,可
以在命令后面加上参数,-h”,如,javac -h
编译 Fibonacci类
? 使用 javac命令,javac命令的用法如下,
? 在命令行窗口中编译 Fibonacci类源程序
javac [options] [sourcefiles] [@files]
-options 编译器可选项列表
-sourcefiles 一个或多个要编译的源程序文件
-@files 一个或多个列出源文件列表的文件
X:\>javac Fibonacci.java
类的字节码文件
? 类的源程序编译成功后会生成类的字节码文
件,字节码文件是可被 JVM解释运行的虚拟
机指令集和,字节码文件以类名作为文件名,
以,class”作为文件名的后缀,如,
Fibonacci.class
执行 Fibonacci程序
? 使用 java命令,java命令的用法如下,
? 在命令行窗口中运行 Fibonacci程序
java [options] class [argument… ]
-options 可选项列表
-class 被执行的类名
-argument 传递给 main方法的命令行参数
X:\>java Fibonacci 10
Fibonacci程序开发过程图解
? 第一步:用“记事本”或其它文字编辑工具编写
源程序,并保存为,Fibonacci.java”文件
Fibonacci程序开发过程图解
? 第二步:在命令行窗口中用 javac命令编译源程序
Fibonacci程序开发过程图解
? 第三步:在命令行窗口中用 java命令运行程序
Assignment (作业 )
? 练习书上第一章第 3,5,9页上关于打印
Fibonacci数列的例程,编译、执行后观察
结果是否与书上的内容一致,将编译后的字
节码文件用 WinRAR或 WinZip工具打包,
包的文件名为,学号 _姓名,,周一前上传