Java 第十一章 GUI編程(3)

目錄

內部類

內部類定義

內部類的特點

匿名內部類

格式:

內部類的意義

實例


內部類


? ?● 把類定義在另一個類的內部,該類就被稱為內部類。

? ?● 如果在類 Outer 的內部再定義一個類 Inner,此時類 Inner 就稱為內部類 (或稱為嵌套類),而類 Outer 則稱為外部類(或稱為宿主類)。


內部類定義

內部類——就是位于外部類成員位置的類

特點:可以使用外部類中所有的成員變量和成員方法(包括private的)

class Outer {private int age = 20;class Inner {public void show() {System.out.println(age);}}}

內部類的特點

  • 內部類仍然是一個獨立的類,在編譯之后內部類會被編譯成獨立 的.class文件,但是前面冠以外部類的類名和$符號。
  • ?內部類不能用普通的方式訪問。內部類是外部類的一個成員,因此內部 類可以自由地訪問外部類的成員變量,無論是否為 private 的。

匿名內部類

? ?匿名內部類是一種特殊的局部內部類,它是通過匿名類實現接口。

格式:

new 接口名稱/抽象類名稱() {

重寫抽象方法;

}

注:在實際開發中,我們常常遇到這樣的情況:一個接口/抽象類的方法的某個實現方 式在程序中只會執行一次,但為了使用它,我們需要創建它的實現類。此時可以 使用匿名內部類的方式,可以無需創建新的類,減少代碼冗余。

public interface IA {abstract void fun1();}new IA() {@Override public void fun1() {System.out.println("匿名類實現fun1");}};

內部類的意義

1.封裝性

? ?將只有在某個類中使用的功能定義在內部中,并可以使用不同訪問權限修飾控制

2.實現多繼承 java是不支持多繼承的,多繼承有一個致命性的缺陷, 容易出現鉆石繼承結構,例如圖。

public class Father{public string powerul="市長";
}
publie class Mother{public string wealthy=" 百萬";
}
public class son {
class xtends Father extends Father{
}
c1ass xtends Mother extends Mother{
}
publie void sayHello(}{String father new xtends rather().powerul;String mother = new xtends Mother().wealthv;System.out.println("my father is:" + father + "my mother has:" + mother);}
}

實例(設置內部線程類)

 //為我們發送按鈕注冊事件監聽button1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//獲取輸入的聊天內容String s = textField1.getText();if (s.length()==0) {JOptionPane.showMessageDialog(null, "聊天內容不能為空!");return;}//發送聊天內容try { //拼接聊天內容 把賬戶,發送時間,聊天內容s= account+"  "+dataUntil.strdom(new Date())+"\n"+s+"\n";dataOutputStream.writeUTF(s);textField1.setText("");} catch (IOException ex) {JOptionPane.showMessageDialog(null, "發送失敗" );}}});//來到聊天窗口后,就會隨時有別的客戶端發送消息,在聊天窗口中,循環監聽來自服務器發送的消息new ReceiveThread().start();//啟動監聽線程}//創建接收服務器發送的消息的線程private class ReceiveThread extends Thread {boolean mark = true;@Overridepublic void run() {while (mark){//如果接收到消息就會傳入消息框中try {String s = dataInputStream.readUTF();textArea1.append(s);} catch (IOException e) {mark = false;}}}}

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72948.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72948.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72948.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測 目錄 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多變量回歸預…

3DMAX曲線生成器插件CurveGenerator使用方法

1. 腳本功能簡介 3DMAX曲線生成器插件CurveGenerator是一個用于 3ds Max 的樣條線生成工具,用戶可以通過簡單的UI界面輸入參數,快速生成多條樣條線。每條樣條線的高度值隨機生成,且可以自定義以下參數: 頂點數量:每條…

LiteratureReading:[2023] GPT-4: Technical Report

文章目錄 一、文獻簡明(zero)二、快速預覽(first)1、標題分析2、作者介紹3、引用數4、摘要分析(1)翻譯(2)分析 5、總結分析(1)翻譯(2)…

vm_pwn入門 -- [GHCTF 2025]my_vm

先看基本邏輯 int __fastcall main(int argc, const char **argv, const char **envp) {unsigned __int16 IP; // [rspCh] [rbp-14h] BYREFunsigned __int16 SP; // [rspEh] [rbp-12h] BYREFunsigned __int16 cmd_count; // [rsp10h] [rbp-10h] BYREFunsigned __int16 i; // [r…

CA 機構如何防止中間人攻擊

在現代互聯網中,中間人攻擊(Man-in-the-Middle Attack,簡稱 MITM)是一種常見的網絡攻擊方式,攻擊者通過攔截和篡改通信雙方的信息,進而竊取敏感數據或執行惡意操作。為了防止中間人攻擊,證書頒發…

Elasticsearch快速上手與深度進階:一站式實戰教程

目錄 1. Elasticsearch 簡介 2. 安裝與啟動 方式 1:Docker 快速安裝(推薦) 方式 2:手動安裝 3. 基礎操作 3.1 創建索引 3.2 插入文檔 3.3 查詢文檔 3.4 更新文檔 3.5 刪除文檔 4. 高級查詢 4.1 布爾查詢 4.2 范圍查詢…

聞所聞盡:穿透聲音的寂靜,照見生命的本真

在《楞嚴經》的梵音繚繞中,"聞所聞盡"四個字如晨鐘暮鼓,叩擊著每個修行者的心門。這個源自觀世音菩薩耳根圓通法門的核心概念,既是佛門修行的次第指引,更蘊含著東方哲學對生命本質的終極叩問。當我們穿越時空的帷幕&…

回溯法經典練習:組合總和的深度解析與實戰

回溯法經典練習:組合總和的深度解析與實戰 引言 在算法世界里,回溯法(Backtracking)是解決 組合、排列、子集 等問題的神器。而 “組合總和”(Combination Sum) 問題,更是回溯算法中的經典代表…

傳感器研習社:Swift Navigation與意法半導體(STMicroelectronics)合作 共同推出端到端GNSS汽車自動駕駛解決方案

自動駕駛系統單純依賴感知傳感器進行定位在遇到惡劣天氣或缺乏車道標線的道路場景時很容易失效。此外,由于激光雷達(LiDAR)、視覺等傳感器的成本高昂以及將眾多不同組件整合為統一系統的復雜性,都可能增加產品研發成本或延遲產品上…

【人工智能】Ollama 的 API 操作指南:打造個性化大模型服務

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著人工智能技術的飛速發展,大型語言模型(LLM)在自然語言處理領域的應用日益廣泛。然而,傳統的云端模型服務往往面臨數據隱私、成本高…

Linux關機重啟二三事

、、 1概述 故障是高可用組最常接觸的場景,其中包含了進程故障,網絡故障、系統故障,硬件故障。掉電、關機和重啟作為其中最常見的系統故障,具體的細節還是有些許差異的。本文將從操作系統與主板的行為講解三者之間的聯系與區別。…

算法1--兩束求和

題目描述 解題思路 先說一種很容易想到的暴力解法 暴力解法的思路很簡單,就是遍歷數組,對于每一個元素,都去遍歷數組中剩下的元素,判斷是否有兩個元素的和等于目標值,如果有,就返回這兩個元素的下標。 c…

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和騰訊翻譯插件讓英文網頁顯示中文翻譯

在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和騰訊翻譯插件讓英文網頁顯示中文翻譯 應用——系統工具——終端 suozhangfedora:~$ rpm -aq | grep firefox firefox-131.0.2-1.fc41.x86_64 firefox-langpacks-131.0.2-1.fc41.x86_64 fedora41系統自身安裝有f…

android 接入google 登錄

在 Android 應用中接入 Google 登錄功能,可讓用戶使用他們的 Google 賬號快速登錄應用。以下是詳細的接入步驟和示例代碼: 步驟 1:創建 Google API 項目 訪問 Google API 控制臺,并使用你的 Google 賬號登錄。點擊 “選擇項目”,然后點擊 “新建項目”,按照提示填寫項目…

Redis緩存與數據庫 數據一致性保障

為什么要保證數據一致性 只要使用redis做緩存,就必然存在緩存和DB數據一致性問題。若數據不一致,則業務應用從緩存讀取的數據就不是最新數據,可能導致嚴重錯誤。比如將商品的庫存緩存在Redis,若庫存數量不對,則下單時…

19.哈希表的實現

1.哈希的概念 哈希(hash)?稱散列,是?種組織數據的?式。從譯名來看,有散亂排列的意思。本質就是通過哈希函數把關鍵字Key跟存儲位置建??個映射關系,查找時通過這個哈希函數計算出Key存儲的位置,進?快速查找。 1.2.直接定址法…

IoTDB TTL不生效

問題 時序數據庫 IoTDB 1.3.0 版本數據庫的 TTL 設置為兩天,show databases details 看到設置也是正確的,怎么還是可以查到好幾天前的數據?因為有很多不活躍的測點,所以專門設置了兩天過期,有什么辦法可以自動清理呢&…

【C++基礎】Lambda 函數 基礎知識講解學習及難點解析

一、引入 在 C 中,我們通常使用函數來完成特定的功能。但有時候,我們需要在一個函數內部定義一個小型的功能塊,這時如果單獨寫一個函數會顯得繁瑣。C11 引入了 Lambda 函數,它是一種匿名函數,可以在需要的地方直接定義…

OpenCV 基礎模塊 Python 版

OpenCV 基礎模塊權威指南(Python 版) 一、模塊全景圖 plaintext OpenCV 架構 (v4.x) ├─ 核心層 │ ├─ core:基礎數據結構與操作(Mat/Scalar/Point) │ └─ imgproc:圖像處理流水線(濾…

iStoreOS軟路由對硬盤格式化分區(轉化ext4)

一、為什么要格式化分區? 格式化硬盤分區是軟路由安裝或配置過程中的重要步驟,主要用于清除舊數據、優化文件系統、確保系統穩定性和兼容性。 二、通過iStoreOS硬盤格式化步驟 使用場景:Docker遷移到外置移動硬盤為例,考慮兼容現…