精華區beta Programming 關於我們 聯絡資訊
我對大大您的議題沒有意見了 我只想說 對於那些想學物件導向的人 就讓他們帶著信心去學吧 我們沒有權力影響他人的求知 ※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言: : 不管這些名詞的內涵是什麼,我可以很清楚的直指 : 我反對的就是將Function與 Data 搞在一起,也就是Class這種東西 : 它在實體世界找不到與之對稱性的東西,也不符合結構性的邏輯 : 而且會破壞SA的規則性,將它放入系統中是混亂的開始 : 其實循序化的程式也在處理物件,也有物件的議題 : 只是這個所謂 "物件" 是指 "Struct" ,而不是Class : "物件導向" 這個名詞我已經不敢用了,以免造成混淆 : Struct 其實就是一個參數包,至於它與實體世界的關連,它可以類比為 : 1.實物代卡,例如身份證:代表自然人,上面有一些參數欄來說明這個自然人的特性 : 如姓名、出身年月日、性別、住址等,程式的寫法為: : Struct 身份證 { : Char[6] 姓名; : Char[6] 出生年月日; : Bool 性別; : Char[100] 住址; : ..... : } : 2.隊卡:例如棒球隊 : Struct 棒球隊{ : function* 投手姓名; : function* 補手姓名; : function* 一壘手姓名; : function* 二壘手姓名; : ...... : } : 3.通信卡:例如TCP/IP的封包 : 4.命令代表卡:例如去泡沫紅茶店,他們會給你一張Menu讓你去勾選 : 可以寫成 : Struct 點餐單{ : int 珍珠奶茶點取數量; : int 百香綠茶點取數量; : ...... : } 餐單* : 如果有一天我去泡沫紅茶,然後點飲料,這個動作可以映射成以下的程式 : 飲料* Waitor(餐單*); : void (飲料*); : main() : { : [go to a shop] : 餐單* 餐單A; : Struct 點餐單 我的餐單;/取得一張空白餐單/ : 餐單A = &我的餐單 : 餐單A->珍珠奶茶點取數量=1; /填寫餐單/ : 飲料= Waitor(餐單A); /將餐單交給服務生並取得飲料/ : 喝(飲料); : } : 除了這些,還有很多例子,只要是自然界的東西、程序皆可類比 : 它是系統分析的基礎與利器 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.216.204