动物特性的面向对象描述

上传人:第*** 文档编号:49798812 上传时间:2018-08-03 格式:PPT 页数:16 大小:469KB
返回 下载 相关 举报
动物特性的面向对象描述_第1页
第1页 / 共16页
动物特性的面向对象描述_第2页
第2页 / 共16页
动物特性的面向对象描述_第3页
第3页 / 共16页
动物特性的面向对象描述_第4页
第4页 / 共16页
动物特性的面向对象描述_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《动物特性的面向对象描述》由会员分享,可在线阅读,更多相关《动物特性的面向对象描述(16页珍藏版)》请在金锄头文库上搜索。

1、ACCP V4.0动物特性的面向对象描述 ACCP V4.0问题描述q 动物特性描述q狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉 食性的。狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸 感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发 出“呜呜”声;q猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是 肉食性的。猫通常的时候和人打招呼会发出“喵”的声音,在被 抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发 出“嘶嘶”声;q青蛙是一种两栖动物(既是水生动物也是陆生动物),既不 是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候, 会在岸边“呱呱呱”的唱歌

2、,而在受到惊吓时,会“扑通一声跳入水 中”; 2ACCP V4.0问题分析q首先需要抽取问题描述中对象 q分析每个对象所具有的特征 q分析每个对象所发出的动作 q从这些对象的特征中,抽取类的属性和方法 q分析类之间的关系,画出类结构图3ACCP V4.0难点分析-1抽象类和对象的基本方法:q 抽取对象的基本的方法:找出句子中所使用的名词例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫;q 确定对象发出的行为动作的基本的方法:找出句子中的动词例如:“旺旺叫”、“喵喵叫”都属于对象发出的动作;q 确定对象的属性或者特征的基本的方法:找出句子中的形容词例如:“哺乳性的”“肉食性的”“卵生的”等

3、等;q “是”的关系一般抽象为继承例如:狗是一种动物,意味着:“狗”类 继承自“动物”类;q “有”的关系一般抽象为类的属性例如:动物都有情绪,意味着:“情绪”是“动物”类的一个属性;4ACCP V4.0难点分析-2 Dog: int numberOfLegsDog( ) sayHello( ) sayHello(int newValue) getNumberOfLegs( )Cat: int numberOfLegsCat( ) sayHello( ) sayHello(int newValue) getNumberOfLegs( )Frog: int numberOfLegsFrog( )

4、 sayHello( ) sayHello(int newValue) getNumberOfLegs( ) hasGills( ) laysEggs( )WaterAnimal:hasGills( ) laysEggs( )LandAnimal:getNumberOfLegs( )Animal: boolean mammal boolean carnivorous int moodisMammal( ) isCarnivorous( ) setMood(int newValue) getMood( ) sayHello( ) sayHello(int moodval)5ACCP V4.0阶段

5、划分q第一阶段(60分钟):不考虑情绪影响动物打招呼的方式 q第二阶段(40分钟):考虑情绪影响动物打招呼的方式 q第三阶段(60分钟):考虑陆生动物和水生动物6ACCP V4.0第一阶段q第一阶段(60分钟):不考虑情绪影响动物打招 呼的方式q编写Animal类,没有mood属性,只有一种 SayHello方法;q编写Dog类、Cat类和Frog类,分别继承自Animal类,实现与Animal类不同的功能;q编写main方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性; q要求学员自己动手编码,在编码的过程中解答学 员提出的问题7ACCP V4.0阶段检查q针对第一阶段抽查学员的

6、编码结果q教员给出点评8ACCP V4.0第一阶段标准代码演示q第一阶段编码的结果:abstract class Animal protected boolean mammal = true;protected boolean carnivorous = true;public boolean isMammal() return(mammal); public boolean isCarnivorous() return(carnivorous); abstract public String sayHello();abstractabstractprotectedprotectedclass

7、 Dog extends Animal public String sayHello() return(“摇摇尾巴“);class Cat extends Animal public String sayHello() return(“喵喵叫“);class Frog extends Animal public Frog() mammal = false; carnivorous = false; public String sayHello() return(“呱呱呱“); extendsextendsextendspublic String sayHello() return(“摇摇尾巴“

8、);public String sayHello() return(“喵喵叫“);public String sayHello() return(“呱呱呱“); public Frog() mammal = false; carnivorous = false; public class HelloWorld public static void main(String args) Dog animal1 = new Dog();Cat animal2 = new Cat();Frog animal3 = new Frog();if(animal1.isMammal()System.out.p

9、rintln(“狗是哺乳动物“);elseSystem.out.println(“狗不是哺乳动物“); if(animal1.isCarnivorous()System.out.println(“狗是肉食动物“);elseSystem.out.println(“狗不是肉食动物“);System.out.println(“狗通常的情况下,和人打招呼的方式为:“ +animal1.sayHello(); Dog animal1 = new Dog(); Cat animal2 = new Cat(); Frog animal3 = new Frog();animal1.isMammal()anim

10、al1.isCarnivorous()animal1.sayHello()9ACCP V4.0第二阶段q 第二阶段(40分钟):考虑情绪影响动物打招呼的方式q扩充Animal类、Dog类、Cat类和Frog类,增加 Animal类的mood属性,并实现SayHello方法的多态性;q 扩充main方法;q 要求学员自己动手编码,在编码的过程中解答学员提出的问题10ACCP V4.0阶段检查q针对第二阶段抽查学员的编码结果q教员给出点评11ACCP V4.0第二阶段标准代码演示q第二阶段的编码结果:abstract class Animal public static final int SCA

11、RED = 1;/情绪不好,烦躁public static final int COMFORTED = 2;/情绪好protected boolean mammal = false; protected boolean carnivorous = false; protected int mood = COMFORTED;/情绪属性public boolean isMammal() return(mammal); public boolean isCarnivorous() return(carnivorous); abstract public String sayHello();abstr

12、act public String sayHello(int moodval);public void setMood(int newValue) mood = newValue; public int getMood() return(mood); public static final int SCARED = 1;/情绪好 public static final int COMFORTED = 2;/情绪不好,烦躁protected int mood = COMFORTED;/情绪属性public void setMood(int newValue) mood = newValue; p

13、ublic int getMood() return(mood); abstract public String sayHello(); abstract public String sayHello(int moodval);class Dog extends Animal public String sayHello() return(“摇摇尾巴“); public String sayHello(int moodval) this.setMood(moodval);switch (mood) case SCARED:return(“呜呜叫“);case COMFORTED:return(

14、“旺旺旺叫“);return(“摇摇尾巴“); class Cat extends Animal public String sayHello(int moodval) class Frog extends Animal public String sayHello(int moodval) public String sayHello(int moodval) this.setMood(moodval);switch (mood) case SCARED:return(“呜呜叫“);case COMFORTED:return(“旺旺旺叫“);return(“摇摇尾巴“); public cl

15、ass HelloWorld public static void main(String args) Dog animal1 = new Dog();Cat animal2 = new Cat();Frog animal3 = new Frog();System.out.println(“狗通常的情况下,和人打招呼的方式为:“ +animal1.sayHello();System.out.println(“狗被抚摸情绪好的时候,打招呼的方式是: “ +animal1.sayHello(Animal.COMFORTED);System.out.println(“狗烦躁的时候,会: “ +animal1.sayHello(Animal.SCARED); System.out.println(“狗通常的情况下,和人打招呼的方式为:“ +animal1.sayHello(); System.out.println(“狗被抚摸情绪好的时候,打招呼的方式是: “ + animal1.sayHello(Animal.COMFORTED); System.out.println(“狗烦躁的时候,会: “ +animal1.sayHello(Animal.SCARED);12ACCP V4.0第三阶段q第三阶段(60分钟):考虑陆生动物和水生动物q定义LandAnima

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号