




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动物特性的面向对象描述T21班阶段项目 问题描述 动物特性描述狗生活在陆地上 是一种陆生动物 既是哺乳类的也是肉食性的 狗通常的时候和人打招呼会通过 摇摇尾巴 在被抚摸感到舒服的时候 会 旺旺叫 而在受到惊吓情绪烦躁时 会发出 呜呜 声 猫也生活在陆地上 是一种陆生动物 既是哺乳类的也是肉食性的 猫通常的时候和人打招呼会发出 喵 的声音 在被抚摸情绪很好时 会发出 咕噜咕噜 声 而在受到惊吓时 会发出 嘶嘶 声 青蛙是一种两栖动物 既是水生动物也是陆生动物 既不是哺乳类的也不是肉食性的 属于卵生 当青蛙情绪好的时候 会在岸边 呱呱呱 的唱歌 而在受到惊吓时 会 扑通一声跳入水中 问题分析 首先需要抽取问题描述中对象分析每个对象所具有的特征分析每个对象所发出的动作从这些对象的特征中 抽取类的属性和方法分析类之间的关系 画出类结构图 分析 1 抽象类和对象的基本方法 对象 名词例如 在句子 小猫喵喵叫 中 我们能够确定一个对象 猫 方法 动词例如 旺旺叫 喵喵叫 都属于对象发出的动作 属性或者特征 形容词例如 哺乳性的 肉食性的 卵生的 等等 是 的关系 继承例如 狗是一种动物 意味着 狗 类继承自 动物 类 有 的关系 类的属性例如 动物都有情绪 意味着 情绪 是 动物 类的一个属性 第一步 狗 Dog 猫 Cat 青蛙 Frog 找出对象 哺乳类 mammal 肉食性 carnivorous 情绪 mood 对象特征 打招呼 sayHello 肉食性 carnivorous 情绪 mood 对象动作 是否为哺乳类 设置情绪 获得情绪 哺乳类和肉食类 情绪是动物类所拥有的特性 设为受保护的 在子类中打招呼的方式不同所以重写父类的方法 在这里可以将父类的打招呼方式设为抽象类 这样子类就不会忘记有这个方法 狗 猫 青蛙分别继承父类打招呼的方式处理 其它为通常 1为被抚摸 2为受惊吓 第二步 Dog Dog sayHello intnewValue getMammalAndCarnivorous Cat Cat sayHello intnewValue getMammalAndCarnivorous Frog Frog sayHello intnewValue getMammalAndCarnivorous Animal booleanmammalbooleancarnivorousisMammal isCarnivorous sayHello intmoodval 为什么要在子类中加一个判断是否为哺乳动物或肉食动物的方法getMammalAndCarnivorous Dog Dog sayHello intnewValue Cat Cat sayHello intnewValue Frog Frog sayHello intnewValue Animal booleanmammalbooleancarnivorousStringnameisMammal isCarnivorous sayHello intmoodval getMammalAndCarnivorous 改进第二步 为什么加name 为什么把getMammalAndCarnivorous 提到父类 情绪值现在是123能不能直观点 用静态常量来处理 可以脱离于类的实例直接调用 测试类中的代码能否再少点 在父类中定义一个显示信息的类 子类来完成能把子类的showInfo 信息写在父类 第三步 考虑到水生和陆生的问题 这里比较特别 青蛙是两栖动物 那么既有水生的特点又有陆生动物的特点 虽然Java只支持从一个父类继承 但它使用接口的方式支持多重继承 用interface关键字定义接口 定义一个水生的接口定义一个陆生的接口根据不同的动物去实现接口狗和猫只实现水生青蛙实现水生和陆生 接口里写什么呢 只能写常量的定义或方法声明 陆生 腿的数量getNumberOfLegs 水生 有腮 产卵hasGills laysEggs 实现类具体实现接口中的方法 测试类中调用 Dog intnumberOfLegsDog sayHello sayHello intnewValue getNumberOfLegs Cat intnumberOfLegsCat sayHello sayHello intnewValue getNumberOfLegs Frog intnumberOfLegsFrog sayHello sayHello intnewValue getNumberOfLegs hasGills laysEggs WaterAnimal hasGills laysEggs LandAnimal getNumberOfLegs Animal booleanmammalbooleancarnivorousisMammal isCarnivorous sayHello sayHello intmoodval 提问 具体讲解每个类和接口的属性和方法 要说明为什么 说明numberOfLegs为什么不能在LandAnimal中定义 说明Dog Cat Frog类的构造函数完成什么功能 说明Animal类的属性变量的访问修饰符应该为protectedJava用关键字 指明一个类从另一个继承 所有的动物都以自己独特的打招呼方式 所以它们都需要 父类sayHello方法 因为每种动物说 hello 的方式都不同 所以我们在基类中将sayHello方法声明为 的 这就迫使Animal的每一个子类 sayHello方法 提问 Java提供了四种不同的作用范围 public package protected 和private 任何类 方法或者成员变量都能通过使用public protected 和private关键字来显式的加以保护 任何类 方法 或者成员变量如果没有使用上面的关键字都将被隐式的给与package的作用范围 在此这两个属性用protected修饰 表示 代码改进 因为Animal类中mammal和carnivorous属性值都是true 所以Dog和Cat类用不着重新为这两个属性赋值 而Frog类需要为这两个属性重新赋值 通过构造函数完成 知识点考察 通过本次项目案例练习了面向对象的Java实现 基本囊括了面向对象的三大特征 封装 继承 多态巩固的知识点Java基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新蔡环氧地坪施工方案
- 《肉及肉制品介绍》课件
- 2025沿海货物运输合同
- 2025至2030年中国铁线花瓶数据监测研究报告
- 2025混凝土工劳务分包施工合同
- 2025至2030年中国立毛刮油带数据监测研究报告
- 中宁塑胶跑道施工方案
- 东莞电梯井施工方案
- 租房走廊利用方案范本
- 记忆技巧护士资格证考试的试题及答案
- 新人带教流程
- 2025年度月子中心月嫂专业培训合同
- 支部书记考试练习测试题附答案
- 未成年人专门矫治教育制度适用研究
- 2024年吉林水利电力职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 《血管ECMO导管相关感染预防与控制技术规范》
- 广西电力职业技术学院《外国刑法》2023-2024学年第一学期期末试卷
- 2025年安徽宣城市广德经济开发区投资开发集团有限公司招聘笔试参考题库附带答案详解
- 科技安全课件
- 2024年屠宰场屠宰加工业务承包经营协议3篇
- 《多导睡眠监测》课件
评论
0/150
提交评论