Re: [問題]學校的計概作業 上網查過資料之後還是不 …

看板OOAD作者 (YmEaSn)時間14年前 (2010/05/24 02:53), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串2/2 (看更多)
小弟多年前曾學過一點java 試著就自己的經驗說說看 首先 要有物件的概念(屬性attribute, 行為method) 例如,要定義一個「人」的物件 可以定的屬性 身高 體重 性別 ..等等 可以定的行為 走路 說話 吃 ..等等 封裝 把一個物件的屬性與行為包裝起來,加入存取權限的控制 特性就是你可以決定別人可以叫你做什麼事 (使用你的哪些行為或屬性) 例如你定義了一個「聽」的行為,任何物件都可以叫你「聽」 但你應該不會想讓任何物件都可以叫你吃東西 繼承 一個物件繼承了另一個物件,就會有另一個物件的基本屬性與行為 特性就是你可以將所有物件做一個分類的整理 一方面省去共有屬性、行為的重覆定義,另一方面當你要定一個新物件時, 可以拿舊物件所既有的資源來使用 例如你可以定一個「動物」的物件,把「人」與「狗」都歸在這一類 共有的屬性可以有 身高 體重 品種 ..等 共有的行為可以有 走路 說話(發出聲音) 聽 ..等 將來如果你要定一個新的物件「貓」,一樣可以從「動物」中繼承出來 共有的行為中有不同的內容,可以在各自的物件中再做定義(覆寫) 多型 一個物件中同樣的行為,餵入不同的參數,可以定義不同的反應 (假設你知道函式/參數的觀念) 特性就是你可以在使用一個行為時,不用為了參數不同而呼叫不同的函式 例如同樣是聽到聲音,聽到中文與聽到英文會有不同反應 使用上可以直接以 聽(聲音) 而不需要 if(聲音 instanceof 中文) 聽中文(聲音) else if(聲音 instanceof 英文) 聽英文(聲音) else if... 剛開始寫沒發覺 寫到後面愈來愈覺得ps大大說的有道理.. 不知道發問的人程度,根本無法拿捏該怎麼說、該說多少.. 如果原po有看到的話再看看還需要補充什麼.. 如果高手們有發現什麼問題,還請不吝賜教.. 謝謝囉^^ ※ 引述《wwe89039 (灌腸風暴)》之銘言: : 1.物件導向語言的封裝(encapsulation)特性為何? : 2.物件導向語言的繼承(inheritance)特性為何? : 3.物件導向語言的多型(polymorphism)特性為何? : 上知識+查到資料也看過後 : 還是沒辦法用比較口語化的方式寫出來 : 拜託鄉民大大們幫幫我~~~ : 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.174.86

06/05 22:58, , 1F
多型的說法似乎不對..
06/05 22:58, 1F

06/23 20:16, , 2F
多載:一個method有各種不同的介面(呼叫參數)
06/23 20:16, 2F

06/23 20:19, , 3F
多型:每種交通工具的類別都有乘坐的方法
06/23 20:19, 3F

06/23 20:20, , 4F
當乘坐的行為發生時,各種不同的交通工具便使用自己
06/23 20:20, 4F

06/23 20:21, , 5F
定義的乘坐行為去實行
06/23 20:21, 5F

06/23 20:21, , 6F
也可以看成java的interface
06/23 20:21, 6F

06/23 20:22, , 7F
將各種不同的class套上此interface後
06/23 20:22, 7F

06/23 20:22, , 8F
class依據狀況來定義此interface必須實作的method
06/23 20:22, 8F
文章代碼(AID): #1B-NcHMK (OOAD)
文章代碼(AID): #1B-NcHMK (OOAD)