作者didiaulin (YmEaSn)
看板OOAD
标题Re: [问题]学校的计概作业 上网查过资料之後还是不 …
时间Mon May 24 02:53:03 2010
小弟多年前曾学过一点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
1F:→ LZN :多型的说法似乎不对.. 06/05 22:58
2F:推 a1234957 :多载:一个method有各种不同的介面(呼叫参数) 06/23 20:16
3F:推 a1234957 :多型:每种交通工具的类别都有乘坐的方法 06/23 20:19
4F:→ a1234957 :当乘坐的行为发生时,各种不同的交通工具便使用自己 06/23 20:20
5F:→ a1234957 :定义的乘坐行为去实行 06/23 20:21
6F:→ a1234957 :也可以看成java的interface 06/23 20:21
7F:→ a1234957 :将各种不同的class套上此interface後 06/23 20:22
8F:→ a1234957 :class依据状况来定义此interface必须实作的method 06/23 20:22