⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.html

📁 这是介绍JAVE 语言的书籍
💻 HTML
📖 第 1 页 / 共 3 页
字号:
While循 环 结 构 
While(Boolean) { statements; } 
Do循 环 结 构 
do { statements; } while (Boolean); 
一 般 顺 序 控 制 
break [label] continue [label] reutrn expr; label:statement; 
for循 环 例 子 下 面 是 一 个 程 序 例 子, 画 几 条 线, 分 别 用 红,
绿,蓝 颜 色, 这 段 程 序 可 能 是Java函 数 的 一 部 分: 
int count; for (count=1;count<=12;count++) { switch (count % 3) } case 
0: setColor(Color.red); break; case 1: setColor(Color.blue); break; case 
2: setColor(Color.green); break; } 
g.drawLine(10,count*10,80,count*10); } 
3.2 Java变 量 和 函 数 的 实 例 
Java的 类 包 含 变 量 和 函 数。 数 据 变 量 可 以 是 一 ?copy; 原 始 
的 类 型,如int,char等。 成 员 函 数 是 一 ?copy; 可 执 行 的 过 程。 
例 如,下 面 程 序 里: public class ClassOne { int i; public ClassOne() 
{ i=10; } 
public void Add_i(int j) { i=i+j; } } 
ClassOne包 含 一 个 变 量i和 两 个 成 员 函 数,ClassOne(int first)和
Add_i(int j)。 
成 员 函 数 成 员 函 数 是 一 ?copy; 可 被 其 它 类 或 自 己 类 调 用 
的 处 理 子 程 序。 一 个 特 殊 的 成 员 函 数 叫 构 造 函 数, 这 个 
函 数 名 称 一 般 与 本 类 名 程 相 同。 它 没 有 返 回 值。 
构 造 函 数 和 成 员 函 数 当 你 在Java里 定 义 一 个 类 时,你 可 定 
义 一 个 或 多 个 可 选 的 构 造 函 数,当 创 建 本 类 的 一 个 对 象 
时 用 某 一 个 构 造 函 数 来 初 始 化 本 对 象。 用 前 面 的 程 序 例 
子 来 说 明,当ClassOne类 创 建 一 个 新 实 例 时, 所 有 成 员 函 数 
和 变 量 被 创 建(创 建 实 例)。 构 造 函 数 被 调 用。 ClassOne mc: mc 
= new ClassOne(); 
关 键 词new用 来 创 建 一 个 类 的 实 例,一 个 类 用new初 始 化 ?reg; 
前 并 不 占 用 内 存,它 只 是 一 个 类 型 定 义, 当mc对 象 初 始 化 
后,mc对 象 里 的i变 量 等 于10。 你 可 以 通 过 对 象 名 来 引 用 变 
量i。(有 时 称 ?reg; 为 实 例 变 量) mc.i++;//mc实 例 变 量 加1 因 为
mc有ClassOne类 的 所 有 变 量 和 成 员 函 数, 我 们 可 以 使 用 同 
样 的 语 法 来 调 用 成 员 函 数 Add_i: Add_i(10); 现 在mc.i变 量 等 
于21. 
结 束 函 数 Java并 不 支 持 析 构 函 数(C++里 的 定 义),因 为java本 
身 提 ?copy; 对 象 无 用 时 自 动 清 除 的 功 能,同 时 它 也 提 ?copy; 
了 一 个 自 动 拉 圾 箱 的 成 员 函 数, 在 清 除 对 象 时 被 调 用: 
Protected void finalize() { close(); } 
3.3 对 象 有 效 范 围 和 废 物 自 动 回 收 
对 象 有 一 定 的 生 命 期 并 在 它 的 生 命 期 间 使 用 资 源,当 一 
个 对 象 不 再 被 使 用 时,它 应 释 放 内 存, 避 免 内 存 溢 出。 在
Java里,收 集 和 释 放 内 存 是 一 个 叫 自 动 废 品 回 收 站 的 线 
程 的 责 任。 这 个 线 程 监 视 对 象 有 效 范 围 并 给 一 个 走 出 有 
效 范 围 的 对 象 作 上 标 识。 
例 如: String s;//没 有 分 配 内 存 s = new String("oldstring");//分 配 
内 存 s ="newstring";//重 新 分 配 内 存(创 建 新 对 象) 
我 们 将 在 以 后 访 问String类 时 将 更 加 明 白 它 的 工 作 过 程,
但 它 的 快 速 工 作 过 程 是 这 样 的: 1.创 建 一 个 新 的String类 
对 象 并 填 充 以"oldstring" 2.创 建 另 一 个String对 象 并 填 充 以
"newstring" 注 意 我 们 创 建 了 两 个 对 象。 Stirng 对 象 
"oldstring" Stirng 对 象 "newstring" 
在 第 三 条 语 句 里,第 一 个 包 括"oldstring"的 叫 做s的 对 象 已 
走 出 了 有 效 范 围,没 有 任 何 方 法 可 以 再 访 问 他,我 们 现 在 
有 一 个 新 的 对 象 也 叫s,包 含"newstring"。 在 下 一 个 废 品 回 
收 线 程,前 一 个 对 象 将 被 标 识 并 清 除。 
3.4 子 类 
子 类 是 利 用 存 在 的 对 象 创 建 一 个 新 对 象 的 机 制,比 如,如 
果 你 有 一 个Horse类,你 可 以 创 建 一 个 Zebra子 类,Zebra是Horse
的 一 种。 
class Zebra extends Horse { int number_OF_stripes: } 
关 键 词extends来 定 义 对 象 有 的 子 类.Zebra是Horse的 子 类。
Horse类 里 的 所 有 特 征 都 将 拷 贝 到 Zebra类 里,而Zebra类 里 可 
以 定 义 自 己 的 成 员 函 数 和 实 例 变 量。Zebra称 为Horse的 派 生 
类 或 继 承。 另 外,你 也 许 还 想 覆 盖 基 类 的 成 员 函 数。 用
ClassOne说 明,下 面 是 一 个 派 生 类 覆 盖Add_i功 能 的 例 子. 
import ClassOne; public class NewClass extends ClassOne { public void 
Add_i(int j) { i=i+(j/2); } } 
当NewClass类 的 实 例 创 建 时,变 量i初 始 化 值 为10,但 调 用Add_i
产 生 不 同 的 结 果。 NewClass mnc; mnc=new NewClass(); mnc.Add_i(10); 
访 问 控 制 Java里 当 你 创 建 一 个 新 类 时,你 可 以 标 明 变 量 
和 成 员 函 数 的 访 问 层 次。 
public public void AnyOneCanAccess(){} public实 例 变 量 和 成 员 函 
数 可 以 任 意 其 它 类 调 用。 
protected protected void OnlySubClasses(){} protected实 例 变 量 和 成 
员 函 数 只 能 被 其 子 类 调 用. 
private private String CreditCardNumber; private实 例 变 量 和 成 员 
函 数 只 能 在 本 类 里 调 用. 
friendly void MyPackageMethod(){} 缺 省 的,如 果 没 有 定 义 任 何 防 
火 控 制,实 例 变 量 或 函 数 缺 省 定 义 成friendly,意 味 着 可 以 
被 本 包 里 的 任 意 对 象 防 问,但 其 它 包 里 的 对 象 不 可 防 问。 
静 态 成 员 函 数 和 变 量 有 ?copy; 时 候,你 创 建 一 个 类,希 望 这 
个 类 的 所 有 实 例 都 公 用 一 个 变 量。 也 就 是 说,所 有 这 个 类 
的 对 象 都 只 有 实 例 变 量 的 同 一 个 拷 贝。 这 种 方 法 的 关 键 
词 是static, 例 如: 
class Block { static int number=50; } 
所 有 从Block类 创 建 的 对 象 的number变 量 值 都 是 相 同 的。 无 
任 在 哪 个 对 象 里 改 变 了number的 值, 所 有 对 象 的number都 跟 
着 改 变。 同 样 的,你 可 以 定 义static成 员 函 数,但 这 个 成 员 函 
数 不 能 访 问 非static函 数 和 变 量。 
class Block { static int number = 50; int localvalue; static void 
add_local(){ localvalue++;//没 有 运 行 } static void add_static() 
{ number++;//运 行 } } 
3.5 this和super 
访 问 一 个 类 的 实 例 变 量 时,this关 键 词 是 指 向 这 个 类 本 
身 的 指 针,在 前 面ClassOne例 子 中,我 们 可 以 增 加 构 造 函 数 
如 下: 
public class ClassOne { int i; public ClassOne() { i = 10; } 
public ClassOne (int value) this.i = value; } 
public void Add_i(int j) { i = i + j; } } 
这 里,this指 向ClassOne类 的 指 针。 如 果 在 一 个 子 类 里 覆 盖 了 
父 类 的 某 个 成 员 函 数,但 又 想 调 用 父 类 的 成 员 函 数,你 可 
以 用super 关 键 词 指 向 父 类 的 成 员 函 数。 
import ClassOne; public class NewClass extends ClassOne { public void 
Add_i (int j) { i = i+(j/2); super.Add_i (j); } } 
下 面 程 序 里,i变 量 被 构 造 函 数 设 成10,然 后15, 最 后 被 父 类
(ClassOne)设 成25。 
NewClass mnc; mnc = new NewClass(); mnc.Add_i(10); 
3.6 类 的 类 型 
至 今 为 止,我 用 在 类 前 面 只 用 了 一 个public关 键 词,其 实 它 
有 下 面4种 选 择: 
abstract 一 个abstract类 必 须 至 少 有 一 个 虚 拟 函 数,一 个
abstract类 不 能 直 接 创 建 对 象,必 须 继 承 子 类 后 才 能。 
final 一 个final类 声 明 了 子 类 链 的 结 尾,用final声 明 的 类 不 
能 再 派 生 子 类。 
public public类 能 被 其 它 的 类 访 问。 在 其 它 包 里,如 果 想 使 
用 这 个 类 必 须 先import,否 则 它 只 能 在 它 定 义 的package里 使 
用。 
synchronicable 这 个 类 标 识 表 示 所 有 ?copy; 类 的 成 员 函 数 都 
是 同 步 的。 
3.7 抽 象 类 
面 向 对 象 的 一 个 最 大 优 点 就 是 能 够 定 义 怎 样 使 用 这 个 
类 而 不 必 真 正 定 义 好 成 员 函 数。 如 果 程 序 由 不 同 的 用 户 
实 现 时 是 很 有 用 的, 这 不 需 用 户 使 用 相 同 的 成 员 函 数 
名。 
在java里Graphics类 里 一 个abstract类 的 例 子 如 下: public 
abstract class Graphics { public abstract void drawLine(int x1,int y1,int 
x2, int y2); public abstract void drawOval(int x,int y,int width, int 
height); public abstract void drawRect(int x,int y,int width, int 
height); ... } 
在Graphics类 里 声 明 了 几 个 成 员 函 数,但 成 员 函 数 的 实 际 
代 码 是 在 另 外 一 ?copy; 地 方 实 现 的。 
public class MyClass extends Graphics { public void drawLine (int x1,int 
y1,int x2,int y2) { <画 线 程 序 代 码> } } 
当 一 个 类 包 含 一 个abstract成 员 函 数,这 个 类 必 须 定 义 为
abstract类。 然 而 并 不 是abstract类 的 所 有 的 成 员 函 数 都 是
abstract的。Abstract类 不 能 有 私 有 成 员 函 数(它 们 不 能 被 实 
现),也 不 能 有 静 态 成 员 函 数。 
3.8 接 口
当 你 确 定 多 个 类 的 操 作 方 式 都 很 相 象 时,abstract成 员 函 
数 是 很 有 用 的。 但 如 果 你 需 要 使 用 这 ?copy;abstract成 员 函 
数, 必 须 创 建 一 个 新 类, 这 样 有 时 很 繁 琐。 接 口 提 ?copy; 了 
一 种 抽 象 成 员 函 数 的 有 利 方 法。 一 个 接 口 包 含 了 在 另 一 
个 地 方 实 现 的 成 员 函 数 的 收 集。 成 员 函 数 在 接 口 里 定 义 
为public和 abstract。 接 口 里 的 实 例 变 量 是public,static和
final。 接 口 和 抽 象 的 主 要 区 别 是 一 个 接 口 提 ?copy; 了 封 
装 成 员 函 数 协 议 的 方 法 而 不 必 强 迫 用 户 继 承 类。 
例 子: public interface AudiClip { //Start playing the clip. void play(); 
//Play the clip in a loop. void loop(); //Stop playing the clip void 
stop(); } 
想 使 用Audio Clip接 口 的 类 使 用implenents关 键 词 来 提 ?copy; 
成 员 函 数 的 程 序 代 码。 class MyClass implements AudioClip { void 
play(){ <实 现 代 码> } void loop <实 现 代 码> } void stop <实 现 代 码
> } } 
优 点 一 个 接 口 类 可 以 被 任 意 多 的 类 实 现, 每 个 类 可 以 共 
享 程 序 接 口 而 不 必 关 心 其 它 类 是 怎 样 实 现 的。 class 
MyOtherClass implements AudioClip { void stop(){ <实 现 代 码> } ... } 
内 部 成 员 函 数 Java还 提 ?copy; 了 调 用C和C++函 数 的 方 法。 用
native关 键 词 来 定 义C和C++的 函 数。 
public class Date { int now; public Date() { now = time (); } private native 
int time (); 
static { System.loadLibrary("time"); } } 
一 ?copy;Java代 码 写 好 后,就 需 要 以 下 步 骤 执 行: 1.用javah来 
创 建 头 文 件(.h) 2.用javah来 创 建stub文 件 3.用C和C++写native
成 员 函 数 的 代 码 4.编 译stub文 件 和.C文 件 成 一 个 动 态 可 加 
载 库 5.用java运 行java程 序 或appletviewer运 行applet 
注 意:Native成 员 函 数 超 出 了 类 的 范 围。 
3.9 包(Packages)
包(Package)由 一 组 类(class)和 界 面(interface)组 成。 它 是 管 理 大 
型 名 字 空 间, 避 免 名 字 冲 突 的 工 具。 每 一 个 类 和 界 面 的 
名 字 都 包 含 在 某 个 包 中。 按 照 一 般 的 习 惯, 它 的 名 字 是 
由"." 号 分 隔 的 单 词 构 成, 第 一 个 单 词 通 常 是 开 发 这 个 
包 的 组 织 的 名 称。 
定 义 一 个 编 译 单 元 的 包 编 译 单 元 的 包 由package语 句 定 
义。 如 果 使 用package语 句, 编 译 单 元 的 第 一 行 必 须 无 空 格, 
也 无 注 释。 其 格 式 如 下: package packageName; 若 编 译 单 元 无
package语 句, 则 该 单 元 被 置 于 一 个 缺 省 的 无 名 的 包 中。 
使 用 其 它 包 中 的 类 和 界 面 在Java语 言 里 提 ?copy; 一 个 包 
可 以 使 用 另 一 个 包 中 类 和 界 面 的 定 义 和 实 现 的 机 制。 用
import关 键 词 来 标 明 来 自 其 它 包 中 的 类。 一 个 编 译 单 元 
可 以 自 动 把 指 定 的 类 和 界 面 输 入 到 它 自 己 的 包 中。 在 一 
个 包 中 的 代 码 可 以 有 两 种 方 式 来 定 义 来 自 其 它 包 中 的 
类 和 界 面: * 在 每 个 引 用 的 类 和 界 面 前 面 给 出 它 们 所 在 
的 包 的 名 字; //前 缀 包 名 法 acme. project.FooBar obj=new acme. 
project. FooBar( ); * 使 用import语 句, 引 入 一 个 类 或 一 个 界 面, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -