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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com