📄 4.html
字号:
<HTML><HEAD><TITLE>黄金书屋</TITLE><META content="text/html; charset=gb2312" http-equiv=Content-Type><link rel="stylesheet" href="/cssset.css"></HEAD><BODY bgColor=#ffffff leftMargin=0 link=#000000 topMargin=0 vLink=#000000><center> <script language="JavaScript" src="/top.js"></script></center><TABLE background=images/bj.jpg border=0 cellSpacing=0 width="100%"> <TR> <TD bgColor=#c6bba4 vAlign=top width="12%"></TD> <TD background=/images/bj.jpg vAlign=top width="76%"> <center> <iframe width=468 height=60 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no bordercolor="#000000" src="/banner3.html"></iframe> </center> <br> </TD> <TD bgColor=#c6bba4 vAlign=top width="12%"></TD> </TR></TABLE><TABLE background=images/bj.jpg border=0 cellSpacing=0 width="100%"> <TR> <TD bgColor=#c6bba4 vAlign=top width="11%" align="right"> <br><br><br> <b><a href="/index.html">回首页</a><br><br><a href='3.html'>上一页</a><br><br><a href='5.html'>下一页</a><br><br><a href='http://pub.goldnets.com:81/bbs/post.php?job=new&topic=12210' target=_blank> 我有话说 </a><br><br><a href='http://pub.goldnets.com:81/bbs/bbslist.php?topic=12210' target=_blank> 评论一览 </a></center><br><!--title_end--></b> </TD> <TD bgColor=#c6bba4 vAlign=top width="1%"></TD> <TD background=/images/bj.jpg vAlign=top width="76%"> <br> <hr align="center" width="98%" size="1"> <br> <font color="blue">Java语言入门</font> >> <font color=red>第 四 章 Java应 用 程 序 的 基 本 框 架</font><hr width=90% color=#7A7A71><table width=88% border=0 align=center><tr><td><div style=font-size:12pt><pre> Java语言入门
第 四 章 Java应 用 程 序 的 基 本 框 架
学 习 一 门 新 语 言 最 好 是 先 看 几 个 简 单 的 程 序 例 子。 下 面
我 们 将 看 到 几 个 非 常 基 本 的 程 序 例 子。
4.1 Java应 用 程 序 的 运 行 环 境
Java应 用 程 序 是 指 可 以 独 立 运 行 在Java虚 拟 机 上 的 程 序,
它 是 一 种 中 间 代 码(byte-code?copy;。 比 如 你 的 应 用 程 序 叫
my.java, 程 序 里 有 一 个 名 称 为app1的 类, 用Javac或 其 它 编 译
器, 编 译 后 将 会 生 成app1.class, 则 在 命 令 行 状 态 下 输 入:
java app1就 可 以 运 行 此 程 序。 注 意, 用java 命 令 运 行 的 类 必
须 有main函 数, 否 则 不 能 执 行。 与 普 通java应 用 程 序 不 同 的
另 一 种 另 一 种Java程 序 叫Java Applet。 我 们 把 它 译 成Java小 程
序, 这 种 程 序 后 缀 也 是.class, 但 它 不 能 直 接 在java虚 拟 机
上 运 行, 也 就 是 输 入java *.class不 能 运 行, 这 种 程 序 里 可 以
没 有main函 数, 它 必 须 由 某 个 浏 览 器 来 运 行, 比 如
Appletviewer或 Netscape2.02以 上 等。 这 种 程 序 我 们 将 在 后 面
章 节 中 介 绍。
4.2 最 简 单 的Java程 序 解 释
让 我 们 来 看 一 看 最 简 单 的Java应 用 程 序 例 子, 来 理 解 一
下 它 的 结 构: Filename:1.java
class myfirst{ public static void main(String args[ ])
{ System.out,println ("This is my first Java Application"); } }
这 就 是 一 个 完 整 的 Java 应 用 程 序, 将 它 编 译: Javac 1.java
在 当 前 目 录 下, 它 将 生 成myfirst.class 文 件, Java myfirst 屏 幕
上 将 会 输 出:This is my first Java Application
让 我 们 来 一 步 一 步 分 析 每 句 话 含 义 (1?copy; class myfirst 这
一 行 用 关 键 词class来 定 义 名 为myfirst的 新 类,myfirst是 新 类
的 名 称, 必 须 是 一 个 有 效 的 标 识 符, 有 效 标 识 符 定 义 请
见 程 序 设 计 基础章 节。 类 的 说 明 包 括 数 据 说 明 和 成 员 函
数 说 明, 都 放 在 类 后 面 的 大 括 号 里 面。 一 般 类 定 义 如 下:
class 类 名 称{ 数 据 定 义; 函 数 定 义; }
( 2 )public static void main (String args [ ] ) public是 一 个 表 示 访
问 权 限 的 关 键 字, 表 示 此 成 员 函 数 是 公 有 的, 可 以 被 其
他 类 直 接 调 用, 包 括java解 释 器。 相 对 应 的 关 键 字 有private
和protected,friend。private表 示 只 能 被 本 类 访 问,protected表 示
只 能 被 子 类 访 问,friend是 缺 省 的 访 问 权 限, 表 示 能 被 本
包(package)中 任 意 类 访 问, 对 其 它 包 中 的 类 是 不 可 访 问 的。
static 表 示main 成 员 函 数 在myfirst类 的 所 有 对 象 中 是 唯 一
的, 因 此 如 果 本 程 序 生 成 另 一 个myfirst类 对 象, 调 用 的
main 函 数 将 是 同 一 个 函 数。 void 表 示 main 函 数 没 有 返 回
值, 如 果 有 返 回 类 型 值, 则 可 加 上interger 或boolean 诸 如 此
类, 对 于 有 返 回 值 的 函 数, 其 函 数 实 体 的 最 后 应 加 上
return语 句。 main 这 个 函 数 是 这 运 行 应 用 程 序 的 入 口 点,
因 此 编 写 应 用 程 序 是 必 须 有main( )函 数, 且 是 唯 一 的。
(3?copy; System.out.println 一 句 这 一 句 是main函 数 里 的 功 能
语 句, 是 调 用Java里 System 包 里 的out 类 的println成 员 函 数,
是 标 准 输 入 输 出。
4.3 Java应 用 程 序 参 数 的 传 递
Java语 言 很 类 似C和C++语 言。 在C语 言 里, 通 过 在 命 令 行 输 入
参 数,C程 序 可 由main函 数 读 入 这 ?copy; 参 数,java程 序 也 一
样, 请 看 下 面 程 序: Filename:2.java
class My2 { public static void main (String args[ ] ) { int arc =
args.length; if (arc>0) { for (int i =0;i<arc;i++) System.out.println
(args[i] ) } else { System.out.println ("Application have no args!"); } } }
编 译:javac 2.java 将 在 本 目 录 下 生 成My2.class文 件。
运 行:java My2 输 出: Application have no args!
运 行:java My2 arg1 arg2 arg3 输 出: arg1 arg2 arg3 这 说 明,java
里 参 数 的 传 递 是 这 样 的, 命 令 行 里 类 名 后 第 一 个 参 数 放
在args[0]里, 第 二 个 参 数 放 在args[1]里, 以 此 类 推。
4.4 建 立 窗 口Java程 序 基 本 框 架
Frame介 绍 在Java语 言 里,Frame类 的 功 能 是 创 建 图 形 用 户 界
面(GUI)的 基 本 窗 口。 在 典 型 浏 览 器 里, Frame类 是 显 示GUI的
父 类。
类 的 层 次 结 构 如 下: java.lang.Object java.awt.Component
java.awt.Container java.awt.Window java.awt.Frame
Frame是 从 没 有 边 框 和 菜 单 条 的 空 白 窗 口 ?copy; 充 来 的。
这 种 窗 口 主 要 用 在 弹 出 式 窗 口 方 式 下。 Frame给 窗 口 一 个
边 框, 一 个 布 局 和 一 个 窗 口 条。
你 可 以 通 过 创 建 自 己 的 多 个Frame来 创 建 图 形 用 户 界 面
的 应 用 程 序。 我 们 已 知 道 怎 样 建 立 独 立 的java应 用 程 序,
那 么 怎 样 将 各 种 迷 人 的 图 形 结 合 在 一 块 呢? 我 们 通 过
建 立 一 个Frame来 实 现 这 个 功 能。Frame让 我 们 访 问 窗 口, 和
applet工 作 区 有 许 多 相 同 的 地 方。 下 面 是 一 个 小 的 应 用
程 序, 它 弹 出 一 个 框 架 并 且 在 框 架 里 显 示 信 息。(信 息 可
以 是 命 令 行 参 数, 也 可 以 是 缺 省 的 信 息?copy;。 如 果 你 在
窗 口 里 点 一 下, 程 序 退 出。
基 本 框 架 程 序 import java.awt.*;
/* * Memo.java *A simple stand-alone graphical application */
public class Memo extends Frame { publc String motd;
public Memo(String s) { //set our title super("Memo Frame");
motd = s; resize(300,300); }
public Memo() { this("This is a Memo"); }
public void paint(Graphics g) { g.drawString(motd,15,15);
g.drawString("Click anywhere to Exit",15,25); }
public void start() { show(); }
public boolean mouseDown(Event e,int x,int y) { //hide the window hide();
//free up system resources dispose(); //Quit the app. System.exit(0);
return false; }
public static void main(String args[]) { Memo m; if (args.length > ) { m
= new Memo(args[0]); } else { m = new Memo(); } m.start(); } }
将Frame联 系 起 来 l 熟 悉 的 函 数 paint()和mouseDown(), 看 起 来
有 点 眼 熟。 这 ?copy; 函 数 与applet的 函 数 一 样。 实 际 上, 一 个
frame 包 含 各 种GUI组 件 与applet的 形 式 一 样。 另 一 个 熟 悉 的
函 数 是start()。 这 个 函 数 并 不 必 要, 因 为 我 们 没 有 覆 盖 任
何 已 存 在 的 函 数。 但 你 想 继 承applet编 程 的 风 格, 你 还 是
可 以 使 用start(),stop(),init()与destroy()等 函 数。
l 新 函 数 我 们 熟 悉 的 函 数start()调 用 了show()。show()函 数 是
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -