位元詩人 [Tag] 物件

[C 語言] 程式設計教學:物件導向程式入門

雖然 C 語言沒有直接支援物件導向程式的語法,但我們可以在一些真實世界的專案看到具有物件導向思維的 C 程式碼。本文介紹以 C 語言撰寫具有物件導向思維的程式碼。 繼續閱讀

[C 語言] 程式設計教學:如何實作類別 (Class) 和物件 (Object)

真正的物件,要有狀態和行為間的連動。狀態以資料的形式儲存在物件的屬性上,行為則是透過函式來實作。C 語言並沒有真正的物件,只能撰寫在精神上貼近物件的函式。在本文中,我們會以平面座標中的點為例,展示兩種物件的寫法。 繼續閱讀

[C 語言] 程式設計教學:如何實作封裝 (Encapsulation)

若物件有進行封裝,除了透過公開介面外,我們無法更動該物件內部的狀態。C 語言不強調封裝的概念,所以我們要重新思考封裝在程式碼中的意義。封裝的目的是資訊隱藏,也就是說,只提供最少量的必要資訊,其他的部分則不開放給外部程式。 繼續閱讀

[C 語言] 程式設計教學:如何實作組合 (composition) 和繼承 (inheritance)

C 語言無法從語法上直接獲得繼承這項特性,所以我們要將繼承從表面上的意義抽離,思考繼承在程式碼的本質。基本上,繼承是一種共用程式碼及實踐子類型的方式。雖然 C 沒有繼承的語法,但我們可以用物件組合來達到程式碼重用以及模擬繼承的目的。 繼續閱讀

[C 語言] 程式設計教學:多型 (Polymorphism),使用函式指標

基本上,C 缺乏對多型的直接支援,要用一些方法去模擬。在本文中,我們使用函式指標的方式去模擬多型。 繼續閱讀

[Golang] 程式設計教學:建立類別 (Class) 和物件 (Object)

近年來,物件導向程式設計 (object-oriented programming) 是程式設計主流的模式 (paradigm)。本文將介紹如何在 Go 撰寫物件導向程式。 繼續閱讀

[C 語言] 程式設計教學:多型 (Polymorphism),使用聯合 (Union)

由於 C 不直接支援多型,我們要用一些手法來模擬。在上一篇文章中,我們使用函式指標,在本文中,我們使用聯合 (union) 來模擬多型。 繼續閱讀

[Golang] 程式設計教學:用介面 (Interface) 實踐繼承和多型

Go 缺乏繼承的機制,我們無法透過繼承來達到多型的效果。為了處理這個議題,Go 引入介面的機制,也就是本文的主題。 繼續閱讀