《JAVA基礎(chǔ)-Java內(nèi)部類》由會員分享,可在線閱讀,更多相關(guān)《JAVA基礎(chǔ)-Java內(nèi)部類(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、L o g o Java基 礎(chǔ) -內(nèi) 部 類v中 軟 無 錫 實(shí) 訓(xùn) 基 地 進(jìn) 度 目 標(biāo)了 解 內(nèi) 部 類 和 如 何 進(jìn) 行 內(nèi) 部 類 和 外 部 類 之 間的 訪 問 。了 解 什 么 是 局 部 內(nèi) 部 類 和 如 何 進(jìn) 行 局 部 內(nèi) 部類 和 外 部 類 之 間 的 訪 問 。了 解 什 么 是 靜 態(tài) 內(nèi) 部 類 和 如 何 進(jìn) 行 靜 態(tài) 內(nèi) 部類 和 外 部 類 之 間 的 訪 問 。了 解 什 么 是 匿 名 內(nèi) 部 類 和 如 何 進(jìn) 行 匿 名 內(nèi) 部類 和 外 部 類 之 間 的 訪 問 。 內(nèi) 部 類 的 定 義定 義 : 一 個 類 中 定 義 了 另 外
2、一 個 類 ;舉 例 : 一 個 雞 蛋 中 發(fā) 現(xiàn) 里 面 有 一 個 小 雞 蛋 ,這 個 小 雞 蛋 同 樣 有 蛋 清 和 蛋 黃主 要 優(yōu) 點(diǎn) : 內(nèi) 部 里 的 實(shí) 例 與 外 部 類 的 實(shí) 例 共享 一 種 ” 特 殊 關(guān) 系 “ , 這 種 關(guān) 系 為 內(nèi) 部 類 中的 代 碼 提 供 對 外 部 類 成 員 的 方 法 , 就 好 像 內(nèi)部 類 是 外 部 類 的 一 部 分 一 樣 , 有 了 內(nèi) 部 類 以后 , 可 以 寫 出 更 為 優(yōu) 雅 清 晰 的 代 碼 。 內(nèi) 部 類 的 形 式約 定 俗 成 : 非 靜 態(tài) 內(nèi) 部 類 或 者 常 規(guī) 內(nèi) 部 類 , 可
3、簡稱 為 內(nèi) 部 類class Outer class Inner /內(nèi) 部 類 成 員/外 部 類 成 員 在 外 部 類 中 訪 問 內(nèi) 部 類在 外 部 類 中 訪 問 內(nèi) 部 類 是 很 容 易 的 , 只 要 把內(nèi) 部 類 看 成 一 個 類 , 然 后 創(chuàng) 建 該 類 的 對 象 ,使 用 對 象 來 調(diào) 用 內(nèi) 部 類 中 的 成 員 就 可 以 了 。范 例 : 示 例 代 碼 是 一 個 在 外 部 類 中 訪 問 內(nèi) 部類 的 程 序 。思 考 : 編 譯 該 程 序 將 產(chǎn) 生 幾 個 class文 件 ? 在 內(nèi) 部 類 中 訪 問 外 部 類在 內(nèi) 部 類 中 訪 問
4、 外 部 類 , 就 像 所 有 的 同 一 個類 中 成 員 互 相 訪 問 一 樣 , 這 樣 是 沒 有 限 制 的, 包 括 將 成 員 聲 明 為 private私 有 的 ?!?范 例 】 示 例 代 碼 是 一 個 在 內(nèi) 部 類 中 訪 問 外部 類 的 程 序 。 局 部 內(nèi) 部 類定 義 :從 名 稱 就 可 以 看 出 局 部 內(nèi) 部 類 是 作 為 一個 類 的 局 部 變 量 來 定 義 的 ?!?范 例 】因 為 這 里 的 內(nèi) 部 類 是 作 為 局 部 成 員 的 形 式 出現(xiàn) 的 , 只 能 在 它 所 在 的 方 法 中 進(jìn) 行 調(diào) 用在 局 部 內(nèi) 部 類
5、 中 訪 問 外 部 類 的 局 部 變 量 是 不能 夠 訪 問 普 通 的 局 部 變 量 的 , 必 須 將 該 局 部變 量 聲 明 為 final 靜 態(tài) 內(nèi) 部 類靜 態(tài) 內(nèi) 部 類 的 形 式 和 非 靜 態(tài) 內(nèi) 部 類 的 形 式 很相 似 的 , 只 是 需 要 將 該 內(nèi) 部 類 使 用 static修 飾成 靜 態(tài) 的 形 式 。 使 用 static修 飾 類 , 這 在 正 常類 中 是 不 可 能 的 ?!?范 例 】可 以 稱 為 “ 嵌 套 類 ” , static修 飾 符 只 是 說 明這 個 嵌 套 類 只 是 外 部 類 的 靜 態(tài) 成 員在 外 部 類
6、 外 , 對 靜 態(tài) 內(nèi) 部 類 進(jìn) 行 訪 問 時 是 不需 要 創(chuàng) 建 外 部 類 對 象 的 匿 名 內(nèi) 部 類匿 名 內(nèi) 部 類 中 將 使 用 到 繼 承 父 類 或 者 實(shí) 現(xiàn) 接 口 的知 識 , 匿 名 內(nèi) 部 類 是 沒 有 名 字 的 , 所 以 在 創(chuàng) 建 匿名 內(nèi) 部 類 時 同 時 創(chuàng) 建 匿 名 內(nèi) 部 類 的 對 象【 范 例 】所 以 匿 名 內(nèi) 部 類 也 是 不 可 能 具 有 構(gòu) 造 器 的 , 這 就出 現(xiàn) 一 個 問 題 。 有 時 在 匿 名 內(nèi) 部 類 中 也 是 要 定 義成 員 變 量 的 , 但 是 該 成 員 變 量 應(yīng) 該 放 在 什 么
7、 位 置呢 。 這 里 的 解 決 方 法 就 是 創(chuàng) 建 一 個 非 靜 態(tài) 語 句 塊, 將 所 有 的 初 始 化 的 成 員 變 量 都 放 在 該 非 靜 態(tài) 語句 塊 中 。 這 樣 在 匿 名 內(nèi) 部 類 中 的 方 法 中 就 可 以 來調(diào) 用 這 些 成 員 變 量 。 小 結(jié)在 本 章 講 解 了 Java中 的 內(nèi) 部 類 , 內(nèi) 部 類 包 括非 靜 態(tài) 內(nèi) 部 類 、 局 部 內(nèi) 部 類 、 靜 態(tài) 內(nèi) 部 類 和匿 名 內(nèi) 部 類 , 并 分 別 對 這 些 內(nèi) 部 類 進(jìn) 行 了 講解 。 在 講 解 每 一 種 內(nèi) 部 類 時 , 首 先 講 解 如 何創(chuàng) 建 該 內(nèi) 部 類 , 并 且 講 解 了 如 何 對 內(nèi) 部 類 進(jìn)行 訪 問