📄 程序入门及java语言基础.txt
字号:
第三章 Java程序设计基础
3.1 Java编 程 概 况
现 在 你 可 以 复 习 一 下Java语 言 的 背 景 材 料, 它 的 基 本 结构 象C/C++, 但 任 何 用 面 向 过 程 语 言 编 写 过 程 序 的 人 都 可 以了 解Java语 言 的 大 部 分 结 构.
3.1.1 程 序 结 构
Java语 言 的 源 程 序 代 码 由 一 个 或 多 个 编 译 单 元(compilation unit)组 成, 每 个 编 译 单 元 只 能 包 含 下 列 内 容(空 格 和 注 释 除外): * 一 个 程 序 包 语 句(package statement ) * 入 口 语 句(import statements) * 类 的 声 明(class declarations) * 界 面 声 明(interface declarations) 每 个Java的 编 译 单 元 可 包 含 多 个 类 或 界 面, 但 是 每 个 编 译单 元 最 多 只 能 有 一 个 类 或 者 界 面 是 公 共 的。 Java 的 源 程 序代 码 被 编 译 ?reg; 后, 便 产 生 了Java字 节 代 码。Java的 字 节 代码 由 一 ?copy; 不 依 赖 于 机 器 的 指 令 组 成, 这 ?copy; 指 令 能被Java的 运 行 系 统(runtime system)有 效 地 解 释。Java的 运 行 系 统工 作 起 来 如 同 一 台 虚 拟 机。 在 当 前 的Java实 现 中, 每 个 编 译单 元 就 是 一 个 以.java为 后 缀 的 文 件。 每 个 编 译 单 元 有 若 干个 类, 编 译 后, 每 个 类 生 成 一 个.class文 件。.class文 件 是Java虚拟 机 能 够 识 别 的 代 码。
3.1.2 注 释
三 种 类 型 如 下: //注 释 一 行 /*一 行 或 多 行 注 释*/ /**文 档注 释**/
文 档 注 释 一 般 放 在 一 个 变 量 或 函 数 定 义 ?reg; 前,指 示 在任 何 自 动 生 成 文 档 系 统 中 调 入。 这 ?copy; 注 释 都 是 声 明 条目 的 描 述.。
3.1.3 标 识 符
变 量, 函 数, 类 和 对 象 的 名 称 都 是 标 识 符, 程 序 员 需 要标 识 和 使 用 的 东 西 都 需 要 标 识 符。 在Java语 言 里,标 识 符 以字 符 或_,$开 头,后 面 可 以 包 含 数 字, 标 识 符 是 大 小 写 有 区 别的,没 有 长 度 限 制。
有 效 的 标 识 符 myname ict_network Hello _sys_path $bill
例 子: int a_number; char _onechar; float $bill;
关 键 词 abstract continue for new switch
boolean default goto null synchronized
break do if package this
byte double implements private threadsafe
byvalue else import protected throw
case extends instanceof public transient
catch false int return true
char final interface short try
class finally long static void
const float native super while
其 它 保 留 词 以 下 单 词 被 保 留 使 用: cast future generic inner
operator outer rest var
3.1.4 数 据 类 型
Java使 用 五 种 基 本 类 型:integer(整 数),floating(浮点 数),point(指针),Boolean(布 尔 变 量),Character or String(字 符 或 字 ??reg;)。 integer 整 数 下 边 给 出 的 数 据 表 示 都 是 整 数 的 例 子: 4 , 15 , 089 , 0xAD00
整 数 长 度 数 据 类 型 表 示
8 bits byte
16 bits short
32 bits int
64 bits long
floating 浮点 数 下 边 给 出 的 数 据 表 示 都 是浮点 数 的 例 子: 6.37 , 3.7E15 , 3e8
浮点 数 长 度 数 据 类 型 表 示
32 bits float
64 bits double
Boolean 布 尔 变 量 下 边 是 布 尔 变 量 的 两 种 可 能 取 值: true false
Character 字 符 下 边 给 出 的 都 是 字 符 的 例 子: a \t (tab) \u????(unicode)
String 字 符 ?reg; 下 边 给 出 的 都 是 字 符 ?reg; 的 例 子: "This is a string literal" "中 国 科 学 院 计 算 所"
数 组 你 可 以 定 义 任 意 类 型 的 数 组. char s[]; 这 是 字 符 型数 组; int [] array; 这 是 整 型 数 组; 你 还 可 以 定 义 数 组 的数 组. int block[][]=new int [2][3]; 数 组 边 界 在 运 行 时 被 检 测,避免 堆 栈 溢 出 和 内 存 崩 溃.
在Java里,数 组 实 际 上 是 一 个 对 象,数 组 有 一 个 成 员 变 量:length。你 可 以 用 这 个 成 员 函 数 来 查 看 任 意 数 组 的 长 度. int a[][] = new int [10][3] a.length /* 10 */ a[0].length /* 3 */
创 建 数 组 在Java里 创 建 数 组,你 可 使 用 两 种 基 本 方 法 ?reg; 一。 创 建 一 个 空 数 组: int list[]=new int[50]; 或 你 可 以 用 初始 数 值 填 充 数 组. String names[] = { "Chenji","Yuan","Chun","Yang" }; 相 当 于 下 面 功 能: String names[]; names = new String[4]; names[0]=new String("Chenji"); names[1]=new String("Yuan"); names[2]=new String("Chun"); names[3]=new String("Yang");
在 编 译 时 你 不 能 象 下 例 那 样 创 建 静 态 数 组。 int name[50];//将产 生 一 个 编 译 错 误
你 也 不 能 用new操 作 去 填 充 一 个 没 定 义 大 小 的 数 组。 int name[]; for (int i=0;i<9;i++) { name[i] = i; }
3.1.5 表 达 式
Java语 言 的 表 达 式 和C语 言 非 常 类 似。
运 算 符 运 算 符(operator)优 先 级 从 高 到 底 排 列 如 下: . [ ] () ++ -- ! ~ instanceof * / % + - << >> >>> < > <= >\ == ! = & ^ && || ? : = op = ,
整 数 运 算 符 在 整 数 运 算 时, 如 果 操 作 数 是long类 型, 则 运算 结 果 是long类 型, 否 则 为int类 型, 绝 不 会 是byte,short或char型。这 样, 如 果 变 量i被 声 明 为short或byte,i+1的 结 果 会 是int。 如 果结 果 超 过 该 类 型 的 取 值 范 围, 则 按 该 类 型 的 最 大 值 取 模。单 目 整 数 运 算 符 是:
运 算 符 操 作 - 单 目 非 ~ 位 补 码 ++ 加1 -- 减1
++运 算 符 用 于 表 示 直 接 加1操 作。 增 量 操 作 也 可 以 用 加 运算 符 和 赋 值 操 作 间 接 完 成。++ lvalue (左 值?copy; 表 示lvalue+=1, ++lvalue 也 表 示lvalue =lvalue +1 (只 要lvalue没 有 副 作 用)。--运 算符 用 于 表 示 减1操 作。++和--运 算 符 既 可 以 作 为 前 缀 运 算 符,也 可 以 做 为 后 缀 运 算 符。 双 目 整 数 运 算 符 是:
运 算 符 操 作** + 加 - 减 * 乘 / 除 % 取 模 & 位 与 | 位 或 ^ 位 异 或 << 左 移 >> 右 移(带 符 号) >>> 添 零 右移
整 数 除 法 按 零 舍 入。 除 法 和 取 模 遵 守 以 下 等 式: ( a/b ) * b + ( a%b ) == a 整 数 算 术 运 算 的 异 常 是 由 于 除 零 或 按 零 取模 造 成 的。 它 将 引 发 一 个 算 术 异 常。 下 溢 产 生 零, 上 溢 导致 越 界。 例 如: 加1超 过 整 数 最 大 值, 取 模 后, 变 成 最 小 值。一 个op=赋 值 运 算 符, 和 上 表 中 的 各 双 目 整 数 运 算 符 联 用,构 成 一 个 表 达 式。 整 数 关 系 运 算 符<, >,<=,>=,==和!=产生boolean类 型 的 数 据。
布 尔 运 算 符 布 尔(boolean)变 量 或 表 达 式 的 组 合 运 算 可 以产 生 新 的boolean值。 单 目 运 算 符!是 布 尔 非。 双 目 运 算 符 &,| 和^是 逻 辑AND,OR和XOR运 算 符, 它 们 强 制 两 个 操 作 数 求 布 尔值。 为 避 免 右 侧 操 作 数 冗 余 求 值, 用 户 可 以 使 用 短 路 求 值运 算 符 & & 和 | |。 用 户 可 以 使 用==和!=, 赋 值 运 算 符 也 可以 用 &=、|=、^=。 三 元 条 件 操 作 符? : 和C语 言 中 的 一 样。
浮点 运 算 符 浮点 运 算 符 可 以 使 用 常 规 运 算 符 的 组 合: 如单 目 运 算 符++、--, 双 目 运 算 符+、-、* 和/, 以 及 赋 值 运 算 符+=,-=,*=,和/=。 此 外, 还 有 取 模 运 算: %和%=也 可 以 作 用 于浮点 数, 例 如: a%b和a-((int) (a/b)*b)的 语 义 相 同。 这 表 示a%b的 结 果 是 除 完 后剩 下 的浮点 数 部 分。 只 有 单 精 度 操 作 数 的浮点 表 达 式 按 照 单精 度 运 算 求 值, 产 生 单 精 度 结 果。 如 果浮点 表 达 式 中 含 有一 个 或 一 个 以 上 的 双 精 度 操 作 数, 则 按 双 精 度 运 算, 结 果是 双 精 度浮点 数。
数 组 运 算 符 数 组 运 算 符 形 式 如 下: <expression> [ <expression>] 可 给 出 数 组 中 某 个 元 素 的 值。 合 法 的 取 值 范 围 是 从0到 数组 的 长 度 减1。 取 值 范 围 的 检 查 只 在 运 行 时 刻 实 ?copy;。
?reg; 运 算 符 ?reg; 以String对 象 实 现。 运 算 符"+"完成 并 ?reg; 操 作, 如 果 必 要 则 自 动 把 操 作 数 转 换 为String型。如 果 操 作 数 是 一 个 对 象, 它 可 定 义 一 个 方 法toString ( ) 返回 该 对 象 的String方 式, 例 如 float a = 1.0 print (“The value of a is”+ a +“\n”); +运 算 符 用 到 ?reg; 上 的 例 子 String s=“a=”+ a; +=运 算 符 也 可 以 用 于String。 注 意, 左 边(下 例 中 的s1)仅 求 值一 次。 s1+=a; //s1=s1+a //若a非String型, 自 动 转 换 为String型。
对 象 运 算 符 双 目 运 算 符instanceof 测 试 某 个 对 象 是 否 是 指定 类 或 其 子 类 的 实 例。 例 如: if (myObject instanceof MyClass) { MyClass anothermyObject=( MyClass) myObject; … } 是 判 定myObject是 否是MyClass的 实 例 或 是 其 子 类 的 实 例。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -