【程式語言】JAVA的期末筆記|物件導向程式設計(static,abstract,constructor,extends,interface)
Published:
by .類別:
- data member 資料成員
- member function 函數成員
類別只是一個模板,利用她才能建立屬於該類別的物件。
-多載不能是引述個數與型態完全相同的
class Circle{ Circle(double a){} Circle(double b){} // 引述個數完全相同 } ########################################### void setCircle(double radius){} int serCircle(double radius){} //型態不同不能多載
建構元 constructor:
★ 名稱必須等於類別名稱
- 沒有回傳值
- 建構元也可以多載
從某建構元呼叫建購元,是用 this() 來呼叫 –> 只能寫在第一行
- public 建構元可在任何地方被呼叫
- private 建構元不能被呼叫
實例變數:必須將物件實體化後才能使用
實例函數:必須先建立物件,在利用物件來呼叫的函數
類別變數(static variable):
private static double pi = 3.14; //把pi宣告成static , 則 Circle 類別建立的物件均可共用 Circle.show_count(); //類別呼叫
- 仍可以用物件呼叫,但須先建立物件。
- 在沒有物件的情況下,類別呼叫。
◎ 在 main 的時候直接由類別 app9_7 呼叫,所以要宣告 static
◎ 類別函數無法存取實例變數或呼叫實例函數
println("radius=" + radius); //不是類別函數,不能被類別函數「內部呼叫」 //--------------------------// exception:non-static variable //內部不能使用this關鍵字
Java 垃圾回收機制
作法是只向該物件的變數值設為 null
cir1 = null;
繼承:
- 每個類別只能有一個父類別
- JAVA的介面(interface)可以實現多重繼承
- super() 呼叫父類別中的建構元() ex: super.show , super.num
- final 終止繼承
抽象 abstract:
目的是讓使用者依據他的格式建立新類別
- 抽象類別只定義名稱
- 抽象類別不能產生物件
- 可定義建購元
- 如果沒有改寫,也要宣告abstract
介面 interface:
- 介面的成員必需初始化
- 介面裡的函數必需寫成 abstract
- 一個介面可以繼承多個介面
- implements