Java物件導向概念

閱讀時間約 1 分鐘

物件導向的概念不外乎-> 封裝、繼承、多型、抽象、介面

封裝:在初始化一個class時,將內容物用private的方式包起來,而另外提供接口去給外界使用,可達到保護其資料隱私。

private: 只有自己類別的成員能夠存取

public: 任何人都可以調用

protected: 其父類與子類可使用,其他不可使用。

繼承:假設創建一個父類別Animal,所有跟動物有關的類別都屬於Animal,所以皆可以繼承Animal,繼承之後的動物都會繼承其屬性跟方法,ex: 屬性 -> 重量、身高,方法 -> 吃、喝、睡。

繼承的方法:class 子類別 extends 父類別{

}

多型:雖然子類別繼承父類別,不過子類別可以更改其中相同的函數執行不同的內容。

raw-image

抽象(abstract) :修飾類別及方法的關鍵字。要注意的是當類別是屬於抽象化的話,那就不能被物件化,。如以下錯誤的例子:

raw-image

存在的目的是專門用來被繼承而已。

而抽象的方法 (abstract void eat())則只能寫方法名稱,無法寫內容,只能由子類別去進行override。

介面(interface): 目的是為了描述不同類別的共同行為。

像是冰箱與烤箱皆為電氣設備,但卻不能彼此繼承,加上JAVA不能多重繼承,所以採用implements的方式執行,如下:

raw-image

宣告介面的方法:必須由類別自己去定義介面提供的方法。雖然不能多重繼承,但可以多重implements。

raw-image

參考資料:https://yubin551.gitbook.io/java-note/object_oriented_programming/interface

    avatar-img
    1會員
    37內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    dab戴伯的沙龍 的其他內容
    概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
    Activity生命週期 onCreate: 第一次開啟時會進入的流程,只會執行一次 onStart: 將Activity的頁面可視化,並將UI物件初始化使其可和使用者互動 onResume:使用者進行互動時在這個階段,直到使用者切換頁面之後,切換成onPause。 onPause : 有其
    Android 主要從上層(接近使用者)到最底層(接近硬體)順序為: Application -> Framework -> Hal -> Linux Kernel。 Application層:應用程序是在這進行發展,也是使用者直接接觸到的部分。 Framework層:這裡會透過AIDL與Se
    DHCP 獲取IP位址。 在建立完兩者的連接後,STA會優先發起DISCOVER的廣播,要求網域提供IP地址的分配,網內的DHCP服務器收到後,會選擇一個IP地址發送給客戶端(OFFER),收到OFFER的STA會再發送一個Request確認是否為該IP位址,若沒錯,DHCP會回傳ACK表示確認
    WIFI連接過程主要分成三步驟: 掃描 (Probe Request, Probe Response) 認證 (Authentication) 連接 (Association Request, Association Response) Eapol(WEP, WPA, WPA2) DHCP
    Android Wifi掃瞄的部分區分成被動掃描與主動掃描: 主動掃瞄:每隔一段時間廣播發送probe request的請求,在各個頻段上詢問AP的訊息,若有收到回應,做紀錄,超時的話則換到下個頻段進行廣播。 被動掃瞄:不發送請求,因為是以省電為目的,因此是單純接收AP傳送的beacon,通過接
    概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
    Activity生命週期 onCreate: 第一次開啟時會進入的流程,只會執行一次 onStart: 將Activity的頁面可視化,並將UI物件初始化使其可和使用者互動 onResume:使用者進行互動時在這個階段,直到使用者切換頁面之後,切換成onPause。 onPause : 有其
    Android 主要從上層(接近使用者)到最底層(接近硬體)順序為: Application -> Framework -> Hal -> Linux Kernel。 Application層:應用程序是在這進行發展,也是使用者直接接觸到的部分。 Framework層:這裡會透過AIDL與Se
    DHCP 獲取IP位址。 在建立完兩者的連接後,STA會優先發起DISCOVER的廣播,要求網域提供IP地址的分配,網內的DHCP服務器收到後,會選擇一個IP地址發送給客戶端(OFFER),收到OFFER的STA會再發送一個Request確認是否為該IP位址,若沒錯,DHCP會回傳ACK表示確認
    WIFI連接過程主要分成三步驟: 掃描 (Probe Request, Probe Response) 認證 (Authentication) 連接 (Association Request, Association Response) Eapol(WEP, WPA, WPA2) DHCP
    Android Wifi掃瞄的部分區分成被動掃描與主動掃描: 主動掃瞄:每隔一段時間廣播發送probe request的請求,在各個頻段上詢問AP的訊息,若有收到回應,做紀錄,超時的話則換到下個頻段進行廣播。 被動掃瞄:不發送請求,因為是以省電為目的,因此是單純接收AP傳送的beacon,通過接
    你可能也想看
    Google News 追蹤
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
    Thumbnail
    本章節的目的是介紹Java中的套件使用,包括如何引用第三方套件和自定義模組,如何創建和使用自定義套件,以及介紹一些常見的Java標準庫套件。這些內容將幫助讀者更好地理解和使用Java的套件系統。
    Thumbnail
    本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
    Thumbnail
    本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
    Thumbnail
    本章節主要介紹Java語言中的函數(也稱為方法)的使用,包括函數的基本結構、函數表達式(Lambda表達式)、箭頭函數、匿名函數的使用,以及如何呼叫函數、如何使用函數參數和函數的返回值等內容。通過學習本章節,讀者將能夠熟練掌握Java語言中的函數相關知識,並能夠在實際編程中靈活運用。
    Thumbnail
    此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
    電子錢包提供獨立的餘額帳戶系統:開戶、交易明細等。 系統流程 使用者介面使用充值,電子錢包系統將會生成充值訂單,然後呼叫支付系統。 支付系統結束後,會將結果告知電子錢包系統,然後更新餘額。 系統結構 Controller:定義服務介面。 Service:處理業務邏輯並透過Dao完
    <template> <div id="charge"> <el-card class="box-card"> <ul class="msg-box"> <li> <h4>充值</h4> </li> <li>
    <template> <div id="queryAcc"> <!-- 由於Element-UI官方支援的ICON圖標比較少,這裡我們自訂一個貨幣圖標--> <i class="el-icon-xxx"/><br/> <div> <span>金額</span>
    Thumbnail
    Vue.js是一種基於MVVM的前端JavaScript框架,類似的框架有React、Angular等。 架設環境 安裝Visual Studio Code(https://code.visualstudio.com/) 安裝Node.js(https://nodejs.org/en/
    Thumbnail
    Lazy evaluation 的效益必須是在 pipe 的組合上有最佳化過的,若組合的不好反而更糟糕,且在 I/O 上幫助似乎也不大。parallel stream 要能發揮效果必須看資料的來源類型,不過要注意的是 parallel stream 也會使記憶體的使用量增加,使用上也要小心。
    Thumbnail
    徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
    Thumbnail
    隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
    Thumbnail
    本章節的目的是介紹Java中的套件使用,包括如何引用第三方套件和自定義模組,如何創建和使用自定義套件,以及介紹一些常見的Java標準庫套件。這些內容將幫助讀者更好地理解和使用Java的套件系統。
    Thumbnail
    本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
    Thumbnail
    本章節是Java入門的第八天,主要介紹物件導向的概念。這包括了類別、建構子、存取修飾子、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、Lambda表達式、泛型和反射等主題。每個主題都配有相關的程式碼範例,以協助讀者更好地理解這些概念。
    Thumbnail
    本章節主要介紹Java語言中的函數(也稱為方法)的使用,包括函數的基本結構、函數表達式(Lambda表達式)、箭頭函數、匿名函數的使用,以及如何呼叫函數、如何使用函數參數和函數的返回值等內容。通過學習本章節,讀者將能夠熟練掌握Java語言中的函數相關知識,並能夠在實際編程中靈活運用。
    Thumbnail
    此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
    電子錢包提供獨立的餘額帳戶系統:開戶、交易明細等。 系統流程 使用者介面使用充值,電子錢包系統將會生成充值訂單,然後呼叫支付系統。 支付系統結束後,會將結果告知電子錢包系統,然後更新餘額。 系統結構 Controller:定義服務介面。 Service:處理業務邏輯並透過Dao完
    <template> <div id="charge"> <el-card class="box-card"> <ul class="msg-box"> <li> <h4>充值</h4> </li> <li>
    <template> <div id="queryAcc"> <!-- 由於Element-UI官方支援的ICON圖標比較少,這裡我們自訂一個貨幣圖標--> <i class="el-icon-xxx"/><br/> <div> <span>金額</span>
    Thumbnail
    Vue.js是一種基於MVVM的前端JavaScript框架,類似的框架有React、Angular等。 架設環境 安裝Visual Studio Code(https://code.visualstudio.com/) 安裝Node.js(https://nodejs.org/en/
    Thumbnail
    Lazy evaluation 的效益必須是在 pipe 的組合上有最佳化過的,若組合的不好反而更糟糕,且在 I/O 上幫助似乎也不大。parallel stream 要能發揮效果必須看資料的來源類型,不過要注意的是 parallel stream 也會使記憶體的使用量增加,使用上也要小心。