目前分類:Java教學影片觀後筆記 (29)

瀏覽方式: 標題列表 簡短摘要

什麼是異常?

1. 中斷了正常指令流的事件

2. 異常只會在「運行中」產生,而不是指在編譯的情況下出錯的那種,需注意!!

3. 異常實例程式碼

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

為什麼要使用接口?

因位於父類的方法可能無法寫出完全能符合各子類需求之內容。且如用一般繼承方式的話,子類也有可能會忘記再覆寫之,因此透過接口之方式,能透過語法來強制子類來覆寫實作之

 

工廠方法模式

1. 工廠方法即將需生成物件的程式碼封裝在工廠類中,並減少調用該物件的程式碼之修改

2. 工廠方法模式主要用於減化因需使用某一物件時,就需根據用戶選擇而生成相應的物件(例如:印表機)之程式碼。其作法即為將該生成物件的程式碼集中放置在某一類中,並再透過方法來呼叫及回傳該物件。

3. 範例程式碼

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是接口?

1. 定義接口,即定義調用物件的標準。而接口又說其等於標準。

2. 以日常生活為例,將USB的傳輸標準定義出來,而需使用該USB的任何物件只要遵守之,就可以使用及產生相應的應用。

 28_接口實例.jpg  

 

接口的基本語法

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

訪問權限與繼承

1. 如果父類與子類在不同的包當中,且父類為default或其成員變數/函數為default者,則子類是可以繼承其成員變數與函數,但會因訪問權限的不足,而造成無法使用之情況產生。所以,在不同包當中要能夠使用的話,而該類與成員變數與函數,皆需設為public(或將成員變數/函數設為protected);否則就是將父類及子類放置在同一個包中。

2. 如果父類的成員變數或函數的修飾子為private的話,就算子類在同一個包當中,也會因private只能在當前的類使用之條件,而該繼承的子類還是不能進行訪問之。

 

Protected權限的作用

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

訪問權限

1. public:公共權限

2. private:私有權限

3. default:包級別(默認)訪問權限

4. protected:受保護權限

該訪問權限用於限制類或類中的成員變數與函數的訪問權限。

 

各個訪問權限的作用

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是Package(套件)之機制?

將類放置在不同的資料夾下,以因應同名類之問題,即提供了命名空間。

 

為什麼要使用Package

假設一個開發團隊中有二個組,其需共同開發學校的管理系統,但此二個組分別開發不同的功能模塊,即A組開發左邊的「學校人員模塊」;B組開發右邊的「用戶管理系統」。如果需將二者的功能進行合併時,會因有同名的類(User)在同一個資料夾中,而造成執行上的問題。所以Package機制就是用於解決此問題的。

 25_為什麼要使用package.png  

 

如何給一個類打包?

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

為什麼要使用抽象類?

如果一段代碼在語意上是有錯誤的,那麼在語法上也應該是有錯誤的。因此,如像針式與噴墨印表機二者之列印方式不相同,且於父類中無法寫出子類能通用的內容時,於程式中應採用抽象函數的方式,以強迫繼承的子類去覆寫之。

 

應用實例程式碼

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是抽象函數?

只有函數的定義(即返回值類型、函數名、參數列表)沒有函數體的函數,就被稱之為抽象函數,也可稱為基類(意即基礎的類)

例如:abstract void fun();

 

什麼是抽象類?

使用abstract定義的類,就可稱之為抽象類。

例如:abstract class 類名{}

 

抽象類的語法特徵

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

練習目的:養成當定義二個類的成員變數與函數時,有重覆代碼的情況產生者,需嘗試使用繼承或其它方法來解決之。

客戶的第一次需求

客戶需求:開發一個印表機控制程序,其功能要有開機、關機和列印等功能。

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

物件的向上轉型

什麼是向上轉型?

將子類的物件賦值給父類的引用。

如以日常生活來說,桌上型電腦也可稱之為電腦,而同樣的筆記型電腦,也可以叫做電腦,因此電腦較為抽象所以為父類,而像筆記型電腦就可稱為子類,而如以向上轉型來說,即我們可將所有的筆記型電腦(子類)稱為電腦(父類),這樣的結論是正確的,而且不會有任何的錯誤產生。

語法格式,例如:

Student s = new Student();

Person p = s;        //向上轉型之語法

(或者寫成:Person p = new Student();)

 21_向上轉型示意圖.png  

 

向上轉型後之物件使用方法

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

 函數覆寫的定義與作用

即如子類繼承父類的成員函數後,因其還有特殊之要求,所以將該函數進行修改,而此一行為就稱之為覆寫。而該覆寫的作用即為擴展「子類函數的應用性與獨特性」

 

函數覆寫的特徵

文章標籤

Elsa 發表在 痞客邦 留言(2) 人氣()

 子類物件與父類建構函數之關係和調用方法

1. 子類雖然能繼承父類的「成員變數」「成員函數」,但「父類的建構函數是不能被繼承」的,只能使用super調用

2. 在子類的建構函數當中,必須調用父類的建構函數。而必須調用父類的建構函數的原因在於「減少重覆代碼」,即如需給父類和子類賦與成員變數初始值的話,會因父類中的建構函數中有賦值過,子類如果再賦值一次就會造成重覆代碼之問題,因此只需利用super來使用即可。

3. 如子類的建構函數中,如無特殊指定的話,於Java編譯時會自動於建構函數的第一行中加入super();,但需注意父類是否有無參數的建構函數。

4. this為調用本類的建構函數,而super則用於調用父類的建構函數。

5. super必須位於建構函數的方法體中的「第一行」,即this相同,因此一個建構函數中「只能有一個thissuper,需注意!!

 

使用super調用父類建構函數之範例

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是繼承?

繼承就是一個類得到另一個類當中的成員變數和成員函數。而相應日常生活,就是兒子從父親獲得到某些東西,例如:基因、姓氏、錢財等。

 

繼承的基本語法特點

1. Java當中只支持「單」繼承,不允許多繼承,即一個子類只能有一個父類,但父類可擁有多個子類。

 18_父子類的關係圖.jpg  

2. 繼承之基本語法:class 子類 extends 父類{[程式碼]}

 

為什麼要使用繼承?使用時機為何?

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

靜態成員變數的語法特點

1. 靜態成員變數格式:static 類型變數名;,如:static int i;

2. 靜態成員變數可以利用「類名」來調用(即類名.成員變數,如Person.name =張三;),其與一般的調用方式不同(即物件.成員變數),但靜態成員變數也可以使用一般的調用方法。

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

如何使用this調用成員變數和成員函數?

16_範例_Person.png  

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

 函數的重載(/多載 Overload)

多載的特徵

1. 二個或者多個函數在「同一個」類當中

2. 函數名相同

3. 參數列表不同

 

多載的作用

文章標籤

Elsa 發表在 痞客邦 留言(1) 人氣()

 物件的使用方法

使用物件來調用變數和函數之格式:

   物件.變數(); ,例如:張三(物件)(.)年齡(變數)(=)15(變數值)

   物件.函數();

14_範例_Dog.png   

14_範例_DogTest.png  

 

多物件的創建方法

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

什麼是「類」?

類是對一系列擁有共同特徵的對象的抽象。

例如:Dog擁有叫、毛髮等特徵,但其不代表某一隻狗,而該類只是狗的概念(即抽象)

 

定義「類」的方法

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

 什麼是物件導向?

1. 物件導向程式設計(Object-oriented programmingOOP)主要將物件作為程式的基本單元,即把程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充功能性<來源:維基百科>

2. 物件導向是一種編程的方法,即程式設計典範與程式開發的方法

3. 物件導向是一種思維方式

4. 物件導向不是一種編程語言

5. 物件導向與傳統的思想剛好相反:傳統的程式設計主張將程式看作一系列函式的集合,或者直接就是一系列對電腦下達的指令。物件導向則是每一個物件都應該能夠接受資料、處理資料並將資料傳達給其它物件,因此它們都可以被看作一個小型的「機器」,即物件。

 

應該如何學習物件導向?

文章標籤

Elsa 發表在 痞客邦 留言(0) 人氣()

 

循環結構

1. 循環結構即指:在一系列語中不斷的從頭至尾的循環執行之。

2. 循環語句結構之運行過程

 10_循環結構   

 

for迴圈

文章標籤

Elsa 發表在 痞客邦 留言(1) 人氣()

1 2