以 C 語言撰寫物件導向程式
高等 C 語言簡介字串指標與陣列函數結構物件導向記憶體檔案錯誤處理巨集處理C 與組合語言資料結構動態字串動態陣列鏈結串列雜湊表開發環境MakeCygwinMinGWDevC++wxDevC++編譯器gcc 編譯器TinyCC 編譯器LCC 編譯器應用主題CGI 程式GNU 程式視窗程式影像處理練習題訊息相關網站參考文獻最新修改簡體版English |
C 語言雖然不是一種物件導向的語言,但是由於具有函數指標 (function pointer) 與結構 (struct),因此可以讓我們模擬出類似物件導向的語法。在本章中,我們將說明如何用 C 語言設計物件導向的程式。 物件導向語言大致上具有三個主要的特徵 — 「封裝、繼承與多型」,以下是這三種特徵的基本描述與範例。 封裝:將資料與函數放在一種稱為物件的結構中。 繼承:子物件可以繼承父物件的所有欄位與屬性,並且可以新增欄位或修改函數。 多型:多種不同的子物件繼承同一種上層物件時,我們可以用上層物件容納之,在呼叫時仍然會根據真實物件型態呼叫對應的子物件函數。 物件導向的三種基本特徵封裝: class Shape { double area() { return 0.0; } } 繼承: class Circle extends Shape { public double r; Circle(double pr) { r = pr; } double area() { return 3.14*r*r; } } 多型: Shape s[] = { new Shape(), new Circle(3.0) }; for (int i=0; i<s.length; i++) System.out.println("area()="+s[i].area()); 完整程式範例class Shape { double area() { return 0.0; } public static void main(String[] argv) { Shape s[] = { new Shape(), new Circle(3.0) }; for (int i=0; i<s.length; i++) System.out.println("area()="+s[i].area()); } } class Circle extends Shape { public double r; Circle(double pr) { r = pr; } double area() { return 3.14*r*r; } } 執行結果
在本文中,我們介紹了如何使用 Java 實作封裝、繼承、多型等三種物件導向的基本特性,在本章的後續小節中,我們將同樣以 Shape 這個範例,說明如何用 C 語言實作出這些物件導向功能。 來自 jserv 的建議
|
page revision: 4, last edited: 05 Mar 2016 03:02
感謝 撰謝物件導向的C
好感動呀~
但是希望可以再增加多一點封裝
(想做到private跟public的功能)
Post preview:
Close preview