第 一 部 分 Java入 门



                        第 一 章 Java概 述 (续 )



                       刘波 李京华 丁锂 王克宏 



                        § 1.3.简 单 的 Java程 序 



      下 面 我 们 先 介 绍 两 个 简 单 的 Java程 序 ,并 对 其 进 行 分 析 。 

      例 1.1. 



    public class HelloWorldApp {             //an application

                public static void main (String args[ ]){

                System.out.println("Hello World!");

                            }

     }



      本 程 序 的 作 用 是 输 出 下 面 一 行 信 息 : 

      Hello World! 



      程 序 中 ,首 先 用 保 留 字 class来 声 明 一 个 新 的 类 ,其 类 名 为 

Hell oWorldApp,它 是 一 个 公 共 类 (public)。 整 个 类 定 义 由 大 括 号 {}

括 起 来 。 在 该 类 中 定 义 了 一 个 main ()方 法 ,其 中 public表 示 访 问 

权 限 ,指 明 所 有 的 类 都 可 以 使 用 这 一 方 法; static指 明 该 方 法 是 

一 个 类 方 法 ,它 可 以 通 过 类 名 直 接 调 用 ;void则 指 明 main()方 法 不

返 回 任 何 值 。 对 于 一 个 应 用 程 序 来 说 ,main()方 法 是 必 需 的 ,而 

且 必 须 按 照 如 上 的 格 式 来 定 义 。 Jave解 释 器 在 没 有 生 成 任 何 

实 例 的 情 况 下 ,以 main()作 为 入 口 来 执 行 程 序 。 Jave程 序 中 可 以 

定 义 多 个 类 ,每 个 类 中 可 以 定 义 多 个 方 法 ,但 是 最 多 只 能 有 一 

个 公 共 类, main()方 法 也 只 能 有 一 个, 作 为 程 序 的 入 口 。 main()方 

法 定 义 中 ,括 号 ()中 的 String args[ ]是 传 递 给 main()方 法 的 参 数,参 

数 名 为 args,它 是 类 String的 一 个 实 例 ,参 数 可 以 为 0个 或 多 个,每 

个 参 数 用 "类 名 参 数 名 "来 指 定 , 多 个 参 数 间 用 逗 号 分 隔 。 在 

main()方 法 的 实 现 (大 括 号 中 ),只 有 一 条 语 句 : 

      System.out.println ("Hello World!"); 



      它 用 来 实 现 字 符 串 的 输 出 ,这 条 语 句 实 现 与 C语 言 中 的 

printf 语 句 和 C++中 cout<<语 句 相 同 的 功 能 。 另 外 ,//后 的 内 容 为 

注 释 。 



      现 在 我 们 可 以 运 行 该 程 序 。 首 先 把 它 放 到 一 个 名 为 

HelloWor ldApp.java的 文 件 中 , 这 里 ,文 件 名 应 和 类 名 相 同 ,因 为 

Java解 释 器 要 求 公 共 类 必 须 放 在 与 其 同 名 的 文 件 中。 然 后 对 

它 进 行 编 译 : 

      C:\>javac HelloWorldApp.java 



      编 译 的 结 果 是 生 成 字 节 码 文 件 HelloWorldApp.class。 最 后 用 

java 解 释 器 来 运 行 该 字 节 码 文 件 : 

      C:\>java HelloWorldApp 



      结 果 在 屏 幕 上 显 示 Hello World! 



      我 们 再 来 看 下 面 的 一 个 例 子 : 

      例 1.2 



    import java.awr.*;

    import java.applet.*;

    public class HelloWorldApplet extends Applet {        //an applet

        public void paint(Graphics g){

        g.drawString ("Hello World!",20,20);

        }

    }



      这 是 一 个 简 单 的 Applet(小 应 用 程 序 )。 程 序 中 ,首 先 用 

import语 句 输 入 java.awr和java.applet下 所 有 的 包 ,使 得 该 程 序 可 能 

使 用 这 些 包 中 所 定 义 的 类 , 它 类 似 于 C中 的 #include语 句 。 然 后 

声 明 一 个 公 共 类 HelloWorldApplet,用 extends指 明 它 是 Applet的 子 类 。 

在 类 中 ,我 们 重 写 父 类 Ap-plet的 paint()方 法 ,其 中 参 数 g为 Graphics

类 ,它 表 明 当 前 作 画 的 上 下 文 。 在 paint()方 法 中 ,调 用 g的 方 法 

drawString(),在 坐 标 (20,20)处 输 出 字 符 串 ""Hello World!", 其 中 坐 标 

是 用 象 素 点 来 表 示 的 。 



      这 个 程 序 中 没 有 实 现 main()方 法 ,这 是 Applet与 应 用 程 序 

Applica tion(如 例 1)的 区 别 之 一 。 为 了 运 行 该 程 序 ,首 先 我 们 也 

要 把 它 放 在 文 件 HelloWorldAppl et.java中 ,然 后 对 它 进 行 编 译 : 

      C:\>javac HelloWorldApplet.java 



      得 到 字 节 码 文 件 HelloWorldApplet.class。 由 于 Applet中 没 有 

main()方 法 作 为 Java解 释 器 的 入 口 ,我 们 必 须 编 写 HTML文 件 ,把 该 

Applet嵌 入 其 中 ,然 后 用 appletviewer来 运 行 ,或 在 支 持 Java的 浏 览 器 

上 运 行 。 它 的 <HTML>文 件 如 下 : 



      <HTML> 

      <HEAD> 

      <TITLE> An Applet </TITLE> 

      </HEAD> 



      <BODY> 

      <applet code="HelloWorldApplet.class" width=200 height=40> 

      </applet> 

      </BODY> 

      </HTML> 



      其 中 用 <applet>标 记 来 启 动 HelloWorldApplet,code指 明 字 节 码 

所 在 的 文 件 ,width和height指 明 applet所 占 的 大 小 ,我 们 把 这 个 HTML

文 件 存 入 Example.html,然 后 运 行 : 

      C:\>appleviewer Example.html 



 

     这 时 屏 幕 上 弹 出 一 个 窗 口 ,其 中 显 示 Hello World!,显 示 结 果 

如 图 : 



      从 上 述 例 子 中 可 以 看 出 ,Java程 序 是 由 类 构 成 的 ,对 于 一 个 

应 用 程 序 来 说 ,必 须 有 一 个 类 中 定 义 main()方 法 ,而 对 applet来 说 ,

它 必 须 作 为 Applet的 一 个 子 类 。 在 类 的 定 义 中 ,应 包 含 类 变 量 的

声 明 和 类 中 方 法 的 实 现 。 Java在 基 本 数 据 类 型 、 运 算 符 、 表

达 式 、 控 制 语 句 等 方 面 与 C、 C++基 本 上 是 相 同 的 ,但 它 同 时 也 

增 加 了 一 些 新 的 内 容 ,在 以 后 的 各 章 中 ,我 们 会 详 细 介 绍 。 本 

节 中 ,只 是 使 大 家 对 Java程 序 有 一 个 初 步 的 了 解 。 





                            第 二 章   数 据 类 型 



                               § 2.1数 据 类 型 



      数 据 类 型 指 明 了 变 量 或 表 达 式 的 状 态 和 行 为 。 Java的 数 

据 类 型 如 下 所 示 : 



      Java不 支 持 C、 C++中 的 指 针 类 型、结 构 体 类 型 和 共 用 体 类 型。 



      本 章 我 们 主 要 介 绍 简 单 类 型 。 



                             § 2.2常 量 与 变 量 



      一 、 常 量 



      Java中 的 常 量 值 是 用 文 字 串 表 示 的 ,它 区 分 为 不 同 的 类 型 

,如 整 型 常 量 123,实 型 常 量 1.23,字 符 常 量 ‘ a’ ,布 尔 常 量 true、 

false以 及 字 符 串 常 量 "This is a constant string."。 



      与 C、 C++不 同 ,Java中 不 能 通 过 #define命 令 把 一 个 标 识 符 定 

义 为 常 量 ,而 是 用 关 键 字 final来 实 现 ,如 final double PI=3.14159( 有 

关 final的 用 法 见 [6.2.3])。 



      二 、 变 量 



      变 量 是 Java程 序 中 的 基 本 存 储 单 元 ,它 的 定 义 包 括 变 量 名 

、 变 量 类 型 和 作 用 域 几 个 部 分 。 



      ① 变 量 名 是 一 个 合 法 的 标 识 符 ,它 是 字 母 、 数 字 、 下 划 

线 或 美 元 符 "$ "的 序 列 ,Java对 变 量 名 区 分 大 小 写 ,变 量 名 不 能 

以 数 字 开 头 ,而 且 不 能 为 保 留 字 。 合 法 的 变 量 名 如 :myName、 

value-1、 dollar$ 等 。 非 法 的 变 量 名 如 :2mail、 room#、 class (保 留 

字 )等 ,变 量 名 应 具 有 一 定 的 含 义 ,以 增 加 程 序 的 可 读 性 。 



      ② 变 量 类 型 可 以 为 上 面 所 说 的 任 意 一 种 数 据 类 型 。 



      ③ 变 量 的 作 用 域 指 明 可 访 问 该 变 量 的 一 段 代 码 。 声 明 一 

个 变 量 的 同 时 也 就 指 明 了 变 量 的 作 用 域 。 按 作 用 域 来 分 ,变 量

可 以 有 下 面 几 种 :局 部 变 量 、 类 变 量 、方 法 参 数 、 例 外 处 理 参 

数 。 局 部 变 量 在 方 法 或 方 法 的 一 块 代 码 中 声 明 ,它 的 作 用 域 

为 它 所 在 的 代 码 块 (整 个 方 法 或 方 法 中 的 某 块 代 码 )。 



      类 变 量 在 类 中 声 明 ,而 不 是 在 类 的 某 个 方 法 中 声 明 ,它 的 

作 用 域 是 整 个 类 。 



      方 法 参 数 传 递 给 方 法 ,它 的 作 用 域 就 是 这 个 方 法 。 



      例 外 处 理 参 数 传 递 给 例 外 处 理 代 码 ,它 的 作 用 域 就 是 例 

外 处 理 部 分 。 



      在 一 个 确 定 的 域 中 ,变 量 名 应 该 是 唯 一 的 。 通 常 ,一 个 域 

用 大 括 号 {}来 划 定 。 



      有 关 类 变 量 、 参 数 传 递 以 及 例 外 处 理 将 分 别 在 [6.7.1]、 

[6.2 .4]和 第 八 章 中 讲 述。 



      ④ 变 量 的 声 明 格 式 为 : 

      type identifier[=value][,identifier[=value]… ]; 



      例 如 : int a, b, c; 

      double d1, d2=0.0; 



      其 中 ,多 个 变 量 间 用 逗 号 隔 开 ,d2=0.0对 实 型 变 量 d2赋 初 值 

0.0, 只 有 局 部 变 量 和 类 变 量 是 可 以 这 样 赋 初 值 的 ,而 方 法 参 数 

和 例 外 处 理 参 数 的 变 量 值 是 由 调 用 者 给 出 的 。 



                            § 2.3整 型 数 据 



      一 、 整 型 常 量 :



      与 C,C++相 同 ,Java的 整 常 数 有 三 种 形 式 : 



      ① 十 进 制 整 数 ,如 123,-456,0 



      ② 八 进 制 整 数 ,以 0开 头 ,如 0123表 示 十 进 制 数 83,-011表 示 十 

进 制 数 -9。 



      ③ 十 六 进 制 整 数 ,以 0x或 0X开 头 ,如 0x123表 示 十 进 制 数 

291,-0X12 表 示 十 进 制 数 -18。 



      整 型 常 量 在 机 器 中 占 32位 ,具 有 int型 的 值 ,对 于 long型 值 ,则 

要 在 数 字 后 加 L或 l,如 123L表 示 一 个 长 整 数 ,它 在 机 器 中 占 64位 。



      二 、 整 型 变 量 :



      整 型 变 量 的 类 型 有 byte、 short、 int、 long四 种 。 下 表 列 出 

各 类 型 所 在 内 存 的 位 数 和 其 表 示 范 围 。 



      (未 完 待 续 )  


回主页教程 上一篇 下一篇