《java基础知识总结5.pdf》由会员分享,可在线阅读,更多相关《java基础知识总结5.pdf(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java基 础 知 识 总 结 5写 代 码:1,明 确 需 求。我 要 做 什 么?2,分 析 思 路。我 要 怎 么 做?1,2,3。3,确 定 步 骤。每 一 个 思 路 部 分 用 到 哪 些 语 句,方 法,和 对 象。4,代 码 实 现。用 具 体 的 java语 言 代 码 把 思 路 体 现 出 来。学 习 新 技 术 的 四 点:1,该 技 术 是 什 么?2,该 技 术 有 什 么 特 点(使 用 注 意):3,该 技 术 怎 么 使 用。demo4,该 技 术 什 么 时 候 用?test。一:java 概 述:1991年 Sun公 司 的 James Gosling等
2、人 开 始 开 发 名 称 为 O ak的 语 言,希 望 用 于 控 制 嵌 入 在 有 线 电 视 交 换 盒、PDA等 的 微 处 理 器;1994年 将 Oak语 言 更 名 为 Java;Java的 三 种 技 术 架 构:JAVAEE:Java Platform Enterprise Edition,开 发 企 业 环 境 下 的 应 用 程 序,主 要 针 对 web程 序 开 发;JAVASE;Java Platform Standard Edition,完 成 桌 面 应 用 程 序 的 开 发,是 其 它 两 者 的 基 础;JAVAME:Java Platform Mic
3、ro Edition,开 发 电 子 消 费 产 品 和 嵌 入 式 设 备,如 手 机 中 的 程 序;1,JDK:Java Development Kit,java的 开 发 和 运 行 环 境,java的 开 发 工 具 和 jre。2,JRE:Java Runtime Environment,java程 序 的 运 行 环 境,java运 行 的 所 需 的 类 库+JVM(java虚 拟 机)。3,配 置 环 境 变 量:让 java jdkbin目 录 下 的 工 具,可 以 在 任 意 目 录 下 运 行,原 因 是,将 该 工 具 所 在 目 录 告 诉 了 系 统,当 使 用
4、 该 工 具 时,由 系 统 帮 我 们 去 找 指 定 的 目 录。环 境 变 量 的 配 置:1):永 久 配 置 方 式:JAVA HOME=%安 装 路 径 Javajdkpath=%JAVA_HOME%bin2):临 时 配 置 方 式:set path=%path%;C:Program FilesJavajdkbin特 点:系 统 默 认 先 去 当 前 路 径 下 找 要 执 行 的 程 序,如 果 没 有,再 去 path中 设 置 的 路 径 下 找。classpath 的 配 置(.;):1):永 久 配 置 方 式:classpath=.;c:;e:2):临 时 配 置
5、方 式:set classpath=.;c:;e:注 意:在 定 义 classpath环 境 变 量 时,需 要 注 意 的 情 况 如 果 没 有 定 义 环 境 变 量 classpath,java启 动 jvm后,会 在 当 前 目 录 下 查 找 要 运 行 的 类 文 件;如 果 指 定 了 classpath,那 么 会 在 指 定 的 目 录 下 查 找 要 运 行 的 类 文 件。还 会 在 当 前 目 录 找 吗?两 种 情 况:1):如 果 classpath的 值 结 尾 处 有 分 号,在 具 体 路 径 中 没 有 找 到 运 行 的 类,会 默 认 在 当 前 目
6、 录 再 找 一 次。2):如 果 classpath的 值 结 果 出 没 有 分 号,在 具 体 的 路 径 中 没 有 找 到 运 行 的 类,不 会 再 当 前 目 录 找。般 不 指 定 分 号,如 果 没 有 在 指 定 目 录 下 找 到 要 运 行 的 类 文 件,就 报 错,这 样 可 以 调 试 程 序。4,javac命 令 和 java命 令 做 什 么 事 情 呢?要 知 道 java是 分 两 部 分 的:一 个 是 编 译,一 个 是 运 行。javac:负 责 的 是 编 译 的 部 分,当 执 行 javac时,会 启 动 java的 编 译 器 程 序。对 指
7、 定 扩 展 名 的.java文 件 进 行 编 译。生 成 了 jvm可 以 识 别 的 字 节 码 文 件。也 就 是 class文 件,也 就 是 java的 运 行 程 序。java:负 责 运 行 的 部 分.会 启 动 jvm.加 载 运 行 时 所 需 的 类 库,并 对 class文 件 进 行 执 行.一 个 文 件 要 被 执 行,必 须 要 有 一 个 执 行 的 起 始 点,这 个 起 始 点 就 是 main函 数.二:ja v a语 法 基 础:b 关 键 字:其 实 就 是 某 种 语 言 赋 予 了 特 殊 含 义 的 单 词。保 留 字:其 实 就 是 还 没
8、 有 赋 予 特 殊 含 义,但 是 准 备 日 后 要 使 用 过 的 单 词。Const,goto2,标 示 符:其 实 就 是 在 程 序 中 自 定 义 的 名 词。比 如 类 名,变 量 名,函 数 名。包 含 0-9、a-z、$、一;注 意:1),数 字 不 可 以 开 头。2),不 可 以 使 用 关 键 字。3,常 量:是 在 程 序 中 的 不 会 变 化 的 数 据。4,变 量:其 实 就 是 内 存 中 的 一 个 存 储 空 间,用 于 存 储 常 量 数 据。作 用:方 便 于 运 算。因 为 有 些 数 据 不 确 定。所 以 确 定 该 数 据 的 名 词 和 存
9、 储 空 间。特 点:变 量 空 间 可 以 重 复 使 用。什 么 时 候 定 义 变 量?只 要 是 数 据 不 确 定 的 时 候,就 定 义 变 量。变 量 空 间 的 开 辟 需 要 什 么 要 素 呢?1,这 个 空 间 要 存 储 什 么 数 据?数 据 类 型。2,这 个 空 间 叫 什 么 名 字 啊?变 量 名 称。3,这 个 空 间 的 第 一 次 的 数 据 是 什 么?变 量 的 初 始 化 值。变 量 的 作 用 域 和 生 存 期:变 量 的 作 用 域:作 用 域 从 变 量 定 义 的 位 置 开 始,到 该 变 量 所 在 的 那 对 大 括 号 结 束;生
10、 命 周 期:变 量 从 定 义 的 位 置 开 始 就 在 内 存 中 活 了;变 量 到 达 它 所 在 的 作 用 域 的 时 候 就 在 内 存 中 消 失 了;数 据 类 型:1):基 本 数 据 类 型:byte short,int long、float、double,char、boolean2):引 用 数 据 类 型:数 组、类、接 口。级 别 从 低 到 高 为:byte,char,short(这 三 个 平 级)一 int-float一 long-double自 动 类 型 转 换:从 低 级 别 到 高 级 别,系 统 自 动 转 的;强 制 类 型 转 换:什 么 情
11、况 下 使 用?把 一 个 高 级 别 的 数 赋 给 一 个 别 该 数 的 级 别 低 的 变 量;运 算 符 号:1)、算 术 运 算 符。+-*/%:任 何 整 数 模 2 不 是 0 就 是 1,所 以 只 要 改 变 被 模 数 就 可 以 实 现 开 关 运 算,操 作 数 可 以 为 浮 点 数,如 37.2%10=7.2。当 除 法 运 算 符 用 于 两 个 整 数 时,就 表 示 整 数 除 法,否 则,表 示 浮 点 数 除 法。15/2=715.0/2=7.5%求 余 操 作 举 例:a%b=a(a/b)*b取 余 运 算 符 既 可 用 于 两 个 操 作 数 都
12、是 整 数 的 情 况,也 可 用 于 两 个 操 作 数 都 是 浮 点 数(或 一 个 操 作 数 是 浮 点 数)的 情 况。当 两 个 操 作 数 都 是 浮 点 数 时;例 如 7.6%2.9时,计 算 结 果 为:7.6-2*2.9=1.8。当 两 个 操 作 数 都 是 int类 型 数 时,a%b的 计 算 公 式 为:a%b=a(int)(a/b)*b当 两 个 操 作 数 都 是 long类 型(或 其 他 整 数 类 型)数 时,a%b的 计 算 公 式 可 以 类 推。当 参 加 二 元 运 算 的 两 个 操 作 数 的 数 据 类 型 不 同 时,所 得 结 果 的
13、 数 据 类 型 与 精 度 较 高(或 位 数 更 长)的 那 种 数 据 类 型 一 致。例 如:7/3 整 除,运 算 结 果 为 27.0/3 除 法,运 算 结 果 为 2.33333,即 结 果 与 精 度 较 高 的 类 型 一 致 7%3 取 余,运 算 结 果 为 17.0%3/取 余,运 算 结 果 为 1.0-7%3 取 余,运 算 结 果 为-1,即 运 算 结 果 的 符 号 与 左 操 作 数 相 同 7%-3 取 余,运 算 结 果 为 1,即 运 算 结 果 的 符 号 与 左 操 作 数 相 同+:连 接 符。+,一 2)、赋 值 运 算 符。=+=-=*=/
14、=%=3)、比 较 运 算 符。特 点:该 运 算 符 的 特 点 是:运 算 完 的 结 果,要 么 是 true,要 么 是 false。4)、逻 辑 运 算 符。&|!&|逻 辑 运 算 符 除 了!外 都 是 用 于 连 接 两 个 boolean类 型 表 达 式。&:只 有 两 边 都 为 true结 果 是 true。否 则 就 是 false。I:只 要 两 边 都 为 false结 果 是 false,否 则 就 是 true“:异 或:和 或 有 点 不 一 样。两 边 结 果 一 样,就 为 false两 边 结 果 不 一 样,就 为 true.&和&区 别:&:无 论
15、 左 边 结 果 是 什 么,右 边 都 参 与 运 算。&:短 路 与,如 果 左 边 为 false,那 么 右 边 不 参 数 与 运 算。I 和 I I 区 别:I:两 边 都 运 算。II:短 路 或,如 果 左 边 为 true,那 么 右 边 不 参 与 运 算。5)、位 运 算 符:用 于 操 作 二 进 制 位 的 运 算 符。&I(无 符 号 右 移)练 习:对 两 个 变 量 的 数 据 进 行 互 换。不 需 要 第 三 方 变 量。int a=3,b=5;-b=3,a=5;a=a+bb=a-ba=a-ba=a bb 二 a 八 ba=a ba=8;b=3;a=5;/b
16、=a/a=ab=aa=b;bb练 习:高 效 的 算 出 2*8=23;5,语 句。If switch do while while for这 些 语 句 什 么 时 候 用?1)、当 判 断 固 定 个 数 的 值 的 时 候,可 以 使 用 if,也 可 以 使 用 switch。但 是 建 议 使 用 switch,效 率 相 对 较 高。switch(变 量)case值:要 执 行 的 语 句;break;default:要 执 行 的 语 句;)工 作 原 理:用 小 括 号 中 的 变 量 的 值 依 次 和 case后 面 的 值 进 行 对 比,和 哪 个 case后 面 的
17、值 相 同 了 就 执 行 哪 个 case后 面 的 语 句,如 果 没 有 相 同 的 则 执 行 default后 面 的 语 句;细 节:1):break是 可 以 省 略 的,如 果 省 略 了 就 一 直 执 行 到 遇 到 break为 止;2):switch后 面 的 小 括 号 中 的 变 量 应 该 是 byte,char,short,int四 种 类 型 中 的 一 种;3):default可 以 写 在 switch结 构 中 的 任 意 位 置;如 果 将 default语 句 放 在 了 第 一 行,则 不 管 expression与 case中 的 value是
18、否 匹 配,程 序 会 从 default开 始 执 行 直 到 第 一 个 break出 现。2)、当 判 断 数 据 范 围,获 取 判 断 运 算 结 果 boolean类 型 时,需 要 使 用 if。3)、当 某 些 语 句 需 要 执 行 很 多 次 时,就 用 循 环 结 构。while和 for可 以 进 行 互 换。区 别 在 于:如 果 需 要 定 义 变 量 控 制 循 环 次 数。建 议 使 用 for。因 为 for循 环 完 毕,变 量 在 内 存 中 释 放。break:作 用 于 switch,和 循 环 语 句,用 于 跳 出,或 者 称 为 结 束。brea
19、k语 句 单 独 存 在 时,下 面 不 要 定 义 其 他 语 句,因 为 执 行 不 到,编 译 会 失 败。当 循 环 嵌 套 时,break只 跳 出 当 前 所 在 循 环。要 跳 出 嵌 套 中 的 外 部 循 环,只 要 给 循 环 起 名 字 即 可,这 个 名 字 称 之 为 标 号。continue:只 作 用 于 循 环 结 构,继 续 循 环 用 的。作 用:结 束 本 次 循 环,继 续 下 次 循 环。该 语 句 单 独 存 在 时,下 面 不 可 以 定 义 语 句,执 行 不 到。6,函 数:为 了 提 高 代 码 的 复 用 性,可 以 将 其 定 义 成 一
20、 个 单 独 的 功 能,该 功 能 的 体 现 就 是 java中 的 函 数。函 数 就 是 体 现 之 一。java中 的 函 数 的 定 义 格 式:修 饰 符 返 回 值 类 型 函 数 名(参 数 类 型 形 式 参 数 1,参 数 类 型 形 式 参 数 1,”执 行 语 句;return返 回 值;)当 函 数 没 有 具 体 的 返 回 值 时,返 回 的 返 回 值 类 型 用 void关 键 字 表 示。如 果 函 数 的 返 回 值 类 型 是 void时,return语 句 可 以 省 略 不 写 的,系 统 会 帮 你 自 动 加 上。return的 作 用:结 束
21、 函 数。结 束 功 能。如 何 定 义 一 个 函 数?函 数 其 实 就 是 一 个 功 能,定 义 函 数 就 是 实 现 功 能,通 过 两 个 明 确 来 完 成:1)、明 确 该 功 能 的 运 算 完 的 结 果,其 实 是 在 明 确 这 个 函 数 的 返 回 值 类 型。2)、在 实 现 该 功 能 的 过 程 中 是 否 有 未 知 内 容 参 与 了 运 算,其 实 就 是 在 明 确 这 个 函 数 的 参 数 列 表(参 数 类 型&参 数 个 数)。函 数 的 作 用:1)、用 于 定 义 功 能。2)、用 于 封 装 代 码 提 高 代 码 的 复 用 性。注
22、意:函 数 中 只 能 调 用 函 数,不 能 定 义 函 数。主 函 数:1),保 证 该 类 的 独 立 运 行。2)、因 为 它 是 程 序 的 入 口。3)、因 为 它 在 被 jvm调 用。函 数 定 义 名 称 是 为 什 么 呢?答:1)、为 了 对 该 功 能 进 行 标 示,方 便 于 调 用。2)、为 了 通 过 名 称 就 可 以 明 确 函 数 的 功 能,为 了 增 加 代 码 的 阅 读 性。重 载 的 定 义 是:在 一 个 类 中,如 果 出 现 了 两 个 或 者 两 个 以 上 的 同 名 函 数,只 要 它 们 的 参 数 的 个 数,或 者 参 数 的
23、类 型 不 同,即 可 称 之 为 该 函 数 重 载 了。如 何 区 分 重 载:当 函 数 同 名 时,只 看 参 数 列 表。和 返 回 值 类 型 没 关 系。7,数 组:用 于 存 储 同 一 类 型 数 据 的 一 个 容 器。好 处:可 以 对 该 容 器 中 的 数 据 进 行 编 号,从 0 开 始。数 组 用 于 封 装 数 据,就 是 一 个 具 体 的 实 体。如 何 在 java中 表 现 一 个 数 组 呢?两 种 表 现 形 式。1)、元 素 类 型 口 变 量 名=new元 素 类 型 元 素 的 个 数;2)、元 素 类 型 口 变 量 名=元 素 1,元 素
24、 2.;元 素 类 型 口 变 量 名:new元 素 类 型 元 素 1,元 素 2.;二 分 查 找 法。必 须 有 前 提:数 组 中 的 元 素 要 有 序。public static int halfSeach_2(int arr,int key)int min,max,mid;min=0;max=arr.length-1;mid=(max+min)1;/(max+min)/2;while(arrmid!=key)if(keyarrmid)min=mid+1;else if(keyarrmid)max=mid-1;if(max1;)return mid;java分 了 5片 内 存。1
25、:寄 存 器。2:本 地 方 法 区。3:方 法 区。4:栈。5:堆。栈:存 储 的 都 是 局 部 变 量(函 数 中 定 义 的 变 量,函 数 上 的 参 数,语 句 中 的 变 量);只 要 数 据 运 算 完 成 所 在 的 区 域 结 束,该 数 据 就 会 被 释 放。堆:用 于 存 储 数 组 和 对 象,也 就 是 实 体。啥 是 实 体 啊?就 是 用 于 封 装 多 个 数 据 的。1:每 一 个 实 体 都 有 内 存 首 地 址 值。2:堆 内 存 中 的 变 量 都 有 默 认 初 始 化 值。因 为 数 据 类 型 不 同,值 也 不 一 样。3:垃 圾 回 收
26、机 制。三:面 向 对 象:特 点:1:将 复 杂 的 事 情 简 单 化。2:面 向 对 象 将 以 前 的 过 程 中 的 执 行 者,变 成 了 指 挥 者。3:面 向 对 象 这 种 思 想 是 符 合 现 在 人 们 思 考 习 惯 的 一 种 思 想。过 程 和 对 象 在 我 们 的 程 序 中 是 如 何 体 现 的 呢?过 程 其 实 就 是 函 数;对 象 是 将 函 数 等 一 些 内 容 进 行 了 封 装。匿 名 对 象 使 用 场 景:1:当 对 方 法 只 进 行 一 次 调 用 的 时 候,可 以 使 用 匿 名 对 象。2;当 对 象 对 成 员 进 行 多
27、次 调 用 时,不 能 使 用 匿 名 对 象。必 须 给 对 象 起 名 字。在 类 中 定 义 其 实 都 称 之 为 成 员。成 员 有 两 种:1:成 员 变 量:其 实 对 应 的 就 是 事 物 的 属 性。2:成 员 函 数:其 实 对 应 的 就 是 事 物 的 行 为。所 以,其 实 定 义 类,就 是 在 定 义 成 员 变 量 和 成 员 函 数。但 是 在 定 义 前,必 须 先 要 对 事 物 进 行 属 性 和 行 为 的 分 析,才 可 以 用 代 码 来 体 现。private int age;私 有 的 访 问 权 限 最 低,只 有 在 本 类 中 的 访
28、问 有 效。注 意:私 有 仅 仅 是 封 装 的 一 种 体 现 形 式 而 已。私 有 的 成 员:其 他 类 不 能 宜 接 创 建 对 象 访 问,所 以 只 有 通 过 本 类 对 外 提 供 具 体 的 访 问 方 式 来 完 成 对 私 有 的 访 问,可 以 通 过 对 外 提 供 函 数 的 形 式 对 其 进 行 访 问。好 处:可 以 在 函 数 中 加 入 逻 辑 判 断 等 操 作,对 数 据 进 行 判 断 等 操 作。总 结:开 发 时,记 住,属 性 是 用 于 存 储 数 据 的,直 接 被 访 问,容 易 出 现 安 全 隐 患,所 以,类 中 的 属 性
29、通 常 被 私 有 化,并 对 外 提 供 公 共 的 访 问 方 法。这 个 方 法 一 般 有 两 个,规 范 写 法:对 于 属 性 xxx,可 以 使 用 setXXX(),getXXX()对 其 进 行 操 作。类 中 怎 么 没 有 定 义 主 函 数 呢?注 意:主 函 数 的 存 在,仅 为 该 类 是 否 需 要 独 立 运 行,如 果 不 需 要,主 函 数 是 不 用 定 义 的。主 函 数 的 解 释:保 证 所 在 类 的 独 立 运 行,是 程 序 的 入 口,被 jvm调 用。成 员 变 量 和 局 部 变 量 的 区 别:1:成 员 变 量 直 接 定 义 在
30、类 中。局 部 变 量 定 义 在 方 法 中,参 数 上,语 句 中。2:成 员 变 量 在 这 个 类 中 有 效。局 部 变 量 只 在 自 己 所 属 的 大 括 号 内 有 效,大 括 号 结 束,局 部 变 量 失 去 作 用 域。3:成 员 变 量 存 在 于 堆 内 存 中,随 着 对 象 的 产 生 而 存 在,消 失 而 消 失。局 部 变 量 存 在 于 栈 内 存 中,随 着 所 属 区 域 的 运 行 而 存 在,结 束 而 释 放。构 造 函 数:用 于 给 对 象 进 行 初 始 化,是 给 与 之 对 应 的 对 象 进 行 初 始 化,它 具 有 针 对 性,
31、函 数 中 的 一 种。特 点:1:该 函 数 的 名 称 和 所 在 类 的 名 称 相 同。2:不 需 要 定 义 返 回 值 类 型。3:该 函 数 没 有 具 体 的 返 回 值。记 住:所 有 对 象 创 建 时,都 需 要 初 始 化 才 可 以 使 用。注 意 事 项:一 个 类 在 定 义 时,如 果 没 有 定 义 过 构 造 函 数,那 么 该 类 中 会 自 动 生 成 一 个 空 参 数 的 构 造 函 数,为 了 方 便 该 类 创 建 对 象,完 成 初 始 化。如 果 在 类 中 自 定 义 了 构 造 函 数,那 么 默 认 的 构 造 函 数 就 没 有 了。
32、一 个 类 中,可 以 有 多 个 构 造 函 数,因 为 它 们 的 函 数 名 称 都 相 同,所 以 只 能 通 过 参 数 列 表 来 区 分。所 以,一 个 类 中 如 果 出 现 多 个 构 造 函 数。它 们 的 存 在 是 以 重 载 体 现 的。构 造 函 数 和 一 般 函 数 有 什 么 区 别 呢?1:两 个 函 数 定 义 格 式 不 同。2:构 造 函 数 是 在 对 象 创 建 时,就 被 调 用,用 于 初 始 化,而 且 初 始 化 动 作 只 执 行 一 次。一 般 函 数,是 对 象 创 建 后,需 要 调 用 才 执 行,可 以 被 调 用 多 次。什
33、么 时 候 使 用 构 造 函 数 呢?分 析 事 物 时,发 现 具 体 事 物 一 出 现,就 具 备 了 一 些 特 征,那 就 将 这 些 特 征 定 义 到 构 造 函 数 内。构 造 代 码 块 和 构 造 函 数 有 什 么 区 别?构 造 代 码 块:是 给 所 有 的 对 象 进 行 初 始 化,也 就 是 说,所 有 的 对 象 都 会 调 用 一 个 代 码 块。只 要 对 象 一 建 立。就 会 调 用 这 个 代 码 块。构 造 函 数:是 给 与 之 对 应 的 对 象 进 行 初 始 化。它 具 有 针 对 性。Person p=new PersonO;创 建 一
34、 个 对 象 都 在 内 存 中 做 了 什 么 事 情?1:先 将 硬 盘 上 指 定 位 置 的 Person,class文 件 加 载 进 内 存。2:执 行 main方 法 时,在 栈 内 存 中 开 辟 了 main方 法 的 空 间(压 栈-进 栈),然 后 在 main方 法 的 栈 区 分 配 了 一 个 变 量 P。3:在 堆 内 存 中 开 辟 一 个 实 体 空 间,分 配 了 一 个 内 存 首 地 址 值。new4:在 该 实 体 空 间 中 进 行 属 性 的 空 间 分 配,并 进 行 了 默 认 初 始 化。5:对 空 间 中 的 属 性 进 行 显 示 初 始
35、 化。6:进 行 实 体 的 构 造 代 码 块 初 始 化。7:调 用 该 实 体 对 应 的 构 造 函 数,进 行 构 造 函 数 初 始 化。()8:将 首 地 址 赋 值 给 p,p 变 量 就 引 用 了 该 实 体。(指 向 了 该 对 象)封 装(面 向 对 象 特 征 之 一):是 指 隐 臧 对 象 的 属 性 和 实 现 细 节,仅 对 外 提 供 公 共 访 问 方 式。好 处:将 变 化 隔 离;便 于 使 用;提 高 重 用 性;安 全 性。封 装 原 则:将 不 需 要 对 外 提 供 的 内 容 都 隐 臧 起 来,把 属 性 都 隐 藏,提 供 公 共 方 法
36、 对 其 访 问。this:代 表 对 象。就 是 所 在 函 数 所 属 对 象 的 引 用。this到 底 代 表 什 么 呢?哪 个 对 象 调 用 了 this所 在 的 函 数,this就 代 表 哪 个 对 象,就 是 哪 个 对 象 的 引 用。开 发 时,什 么 时 候 使 用 this呢?在 定 义 功 能 时,如 果 该 功 能 内 部 使 用 到 了 调 用 该 功 能 的 对 象,这 时 就 用 this来 表 示 这 个 对 象。this还 可 以 用 于 构 造 函 数 间 的 调 用。调 用 格 式:this(实 际 参 数);this对 象 后 面 跟 上.调
37、用 的 是 成 员 属 性 和 成 员 方 法(一 般 方 法);this对 象 后 面 跟 上()调 用 的 是 本 类 中 的 对 应 参 数 的 构 造 函 数。注 意:用 this调 用 构 造 函 数,必 须 定 义 在 构 造 函 数 的 第 一 行。因 为 构 造 函 数 是 用 于 初 始 化 的,所 以 初 始 化 动 作 一 定 要 执 行。否 则 编 译 失 败。static:关 键 字,是 一 个 修 饰 符,用 于 修 饰 成 员(成 员 变 量 和 成 员 函 数)。特 点:1,想 要 实 现 对 象 中 的 共 性 数 据 的 对 象 共 享。可 以 将 这 个
38、数 据 进 行 静 态 修 饰。2,被 静 态 修 饰 的 成 员,可 以 直 接 被 类 名 所 调 用。也 就 是 说,静 态 的 成 员 多 了 一 种 调 用 方 式。类 名.静 态 方 式。3,静 态 随 着 类 的 加 载 而 加 载。而 且 优 先 于 对 象 存 在。弊 端:1,有 些 数 据 是 对 象 特 有 的 数 据,是 不 可 以 被 静 态 修 饰 的。因 为 那 样 的 话,特 有 数 据 会 变 成 对 象 的 共 享 数 据。这 样 对 事 物 的 描 述 就 出 了 问 题。所 以,在 定 义 静 态 时,必 须 要 明 确,这 个 数 据 是 否 是 被
39、对 象 所 共 享 的。2,静 态 方 法 只 能 访 问 静 态 成 员,不 可 以 访 问 非 静 态 成 员。因 为 静 态 方 法 加 载 时,优 先 于 对 象 存 在,所 以 没 有 办 法 访 问 对 象 中 的 成 员。3,静 态 方 法 中 不 能 使 用 this,super关 键 字。因 为 this代 表 对 象,而 静 态 在 时,有 可 能 没 有 对 象,所 以 this无 法 使 用。4,主 函 数 是 静 态 的。什 么 时 候 定 义 静 态 成 员 呢?或 者 说:定 义 成 员 时,到 底 需 不 需 要 被 静 态 修 饰 呢?成 员 分 两 种:1.
40、成 员 变 量。(数 据 共 享 时 静 态 化)该 成 员 变 量 的 数 据 是 否 是 所 有 对 象 都 一 样:如 果 是,那 么 该 变 量 需 要 被 静 态 修 饰,因 为 是 共 享 的 数 据。如 果 不 是,那 么 就 说 这 是 对 象 的 特 有 数 据,要 存 储 到 对 象 中。2,成 员 函 数。(方 法 中 没 有 调 用 特 有 数 据 时 就 定 义 成 静 态)如 果 判 断 成 员 函 数 是 否 需 要 被 静 态 修 饰 呢?只 要 参 考,该 函 数 内 是 否 访 问 了 对 象 中 的 特 有 数 据:如 果 有 访 问 特 有 数 据,那
41、方 法 不 能 被 静 态 修 饰。如 果 没 有 访 问 过 特 有 数 据,那 么 这 个 方 法 需 要 被 静 态 修 饰。成 员 变 量 和 静 态 变 量 的 区 别:1,成 员 变 量 所 属 于 对 象。所 以 也 称 为 实 例 变 量。(所 属)静 态 变 量 所 属 于 类。所 以 也 称 为 类 变 量。2,成 员 变 量 存 在 于 堆 内 存 中。(位 置)静 态 变 量 存 在 于 方 法 区 中。3,成 员 变 量 随 着 对 象 创 建 而 存 在。随 着 对 象 被 回 收 而 消 失。(生 命 周 期)静 态 变 量 随 着 类 的 加 载 而 存 在。随
42、 着 类 的 消 失 而 消 失。4,成 员 变 量 只 能 被 对 象 所 调 用。(调 用)静 态 变 量 可 以 被 对 象 调 用,也 可 以 被 类 名 调 用。所 以,成 员 变 量 可 以 称 为 对 象 的 特 有 数 据,静 态 变 量 称 为 对 象 的 共 享 数 据。静 态 的 注 意:静 态 的 生 命 周 期 很 长。静 态 代 码 块:就 是 一 个 有 静 态 关 键 字 标 示 的 一 个 代 码 块 区 域。定 义 在 类 中。作 用:可 以 完 成 类 的 初 始 化。静 态 代 码 块 随 着 类 的 加 载 而 执 行,而 且 只 执 行 一 次(ne
43、w多 个 对 象 就 只 执 行 一 次)。如 果 和 主 函 数 在 同 一 类 中,优 先 于 主 函 数 执 行。Public:访 问 权 限 最 大。static:不 需 要 对 象,直 接 类 名 即 可。void:主 函 数 没 有 返 回 值。Main:主 函 数 特 定 的 名 称。(String args);主 函 数 的 参 数,是 一 个 字 符 串 数 组 类 型 的 参 数,jvm调 用 main方 法 时,传 递 的 实 际 参 数 是 newString0。jvm默 认 传 递 的 是 长 度 为 0 的 字 符 串 数 组,我 们 在 运 行 该 类 时,也 可
44、 以 指 定 具 体 的 参 数 进 行 传 递。可 以 在 控 制 台,运 行 该 类 时.,在 后 面 加 入 参 数。参 数 之 间 通 过 空 格 隔 开。jvm会 自 动 将 这 些 字 符 串 参 数 作 为 args数 组 中 的 元 素,进 行 存 储。静 态 代 码 块、构 造 代 码 块、构 造 函 数 同 时 存 在 时 的 执 行 顺 序:静 态 代 码 块 今 构 造 代 码 块 今 构 造 函 数;生 成 Jav a帮 助 文 档:命 令 格 式:javadoc-d 文 件 夹 名-auther-version*.java/*/格 式*类 描 述*author作 者
45、 名 A v e rsio n版 本 号*/*方 法 描 述*param参 数 描 述*retu rn返 回 值 描 述*/设 计 模 式:解 决 问 题 最 行 之 有 效 的 思 想。是 一 套 被 反 复 使 用、多 数 人 知 晓 的、经 过 分 类 编 目 的、代 码 设 计 经 验 的 总 结。使 用 设 计 模 式 是 为 了 可 重 用 代 码、让 代 码 更 容 易 被 他 人 理 解、保 证 代 码 可 靠 性。ja v a中 有 23种 设 计 模 式:单 例 设 计 模 式:解 决 的 问 题:保 证 一 个 类 在 内 存 中 的 对 象 唯 一 性。比 如:多 程
46、序 读 取 一 个 配 置 文 件 时,建 议 配 置 文 件 封 装 成 对 象。会 方 便 操 作 其 中 数 据,又 要 保 证 多 个 程 序 读 到 的 是 同 一 个 配 置 文 件 对 象,就 需 要 该 配 置 文 件 对 象 在 内 存 中 是 唯 一 的。Runtime()方 法 就 是 单 例 设 计 模 式 进 行 设 计 的。如 何 保 证 对 象 唯 一 性 呢?思 想:1,不 让 其 他 程 序 创 建 该 类 对 象。2,在 本 类 中 创 建 一 个 本 类 对 象。3,对 外 提 供 方 法,让 其 他 程 序 获 取 这 个 对 象。步 骤:1,因 为 创
47、 建 对 象 都 需 要 构 造 函 数 初 始 化,只 要 将 本 类 中 的 构 造 函 数 私 有 化,其 他 程 序 就 无 法 再 创 建 该 类 对 象;2,就 在 类 中 创 建 一 个 本 类 的 对 象;3,定 义 一 个 方 法,返 回 该 对 象,让 其 他 程 序 可 以 通 过 方 法 就 得 到 本 类 对 象。(作 用:可 控)代 码 体 现:1,私 有 化 构 造 函 数;2,创 建 私 有 并 静 态 的 本 类 对 象;3,定 义 公 有 并 静 态 的 方 法,返 回 该 对 象。饿 汉 式 class Singleprivate Single()私 有
48、化 构 造 函 数。private sta tic Single s=new Single();创 建 私 有 并 静 态 的 本 类 对 象。public sta tic Single getlnstance()定 义 公 有 并 静 态 的 方 法,返 回 该 对 象。return s;)懒 汉 式:延 迟 加 载 方 式。class Single2private Single2()private static Single2 s=null;public static Single2 getlnstance()if(s=null)s=new Single2();return s;继 承(面
49、 向 对 象 特 征 之 一)好 处:1:提 高 了 代 码 的 复 用 性。2:让 类 与 类 之 间 产 生 了 关 系,提 供 了 另 一 个 特 征 多 态 的 前 提。父 类 的 由 来:其 实 是 由 多 个 类 不 断 向 上 抽 取 共 性 内 容 而 来 的。java中 对 于 继 承,java只 支 持 单 继 承。java虽 然 不 直 接 支 持 多 继 承,但 是 保 留 了 这 种 多 继 承 机 制,进 行 改 良。单 继 承:一 个 类 只 能 有 一 个 父 类。多 继 承:一 个 类 可 以 有 多 个 父 类。为 什 么 不 支 持 多 继 承 呢?因 为
50、 当 一 个 类 同 时 继 承 两 个 父 类 时,两 个 父 类 中 有 相 同 的 功 能,那 么 子 类 对 象 调 用 该 功 能 时,运 行 哪 一 个 呢?因 为 父 类 中 的 方 法 中 存 在 方 法 体。但 是 java支 持 多 重 继 承。A 继 承 B B 继 承 C C 继 承 D。多 重 继 承 的 出 现,就 有 了 继 承 体 系。体 系 中 的 顶 层 父 类 是 通 过 不 断 向 上 抽 取 而 来 的。它 里 面 定 义 的 该 体 系 最 基 本 最 共 性 内 容 的 功 能。所 以,一 个 体 系 要 想 被 使 用,直 接 查 阅 该 系 统