资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
第11页 / 共16页
第12页 / 共16页
第13页 / 共16页
第14页 / 共16页
第15页 / 共16页
第16页 / 共16页
亲,该文档总共16页全部预览完了,如果喜欢就下载吧!
点击查看更多>>
资源描述
ACCP V4.0,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,动物特性的面向对象描述,动物特性的面向对象描述,问题描述,动物特性描述,狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;,猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。猫通常的时候和人打招呼会发出“喵”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;,青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”;,2,问题描述动物特性描述2,问题分析,首先需要抽取问题描述中对象,分析每个对象所具有的特征,分析每个对象所发出的动作,从这些对象的特征中,抽取类的属性和方法,分析类之间的关系,画出类结构图,3,问题分析首先需要抽取问题描述中对象3,难点分析-1,抽象类和对象的基本方法:,抽取对象的基本的方法:找出句子中所使用的名词,例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫;,确定对象发出的行为动作的基本的方法:找出句子中的动词,例如:“旺旺叫”、“喵喵叫”都属于对象发出的动作;,确定对象的属性或者特征的基本的方法:找出句子中的形容词,例如:“哺乳性的”“肉食性的”“卵生的”等等;,“是”的关系一般抽象为继承,例如:狗是一种动物,意味着:“狗”类 继承自“动物”类;,“有”的关系一般抽象为类的属性,例如:动物都有情绪,意味着:“情绪”是“动物”类的一个属性;,4,难点分析-1抽象类和对象的基本方法:4,难点分析-2,Dog:,int numberOfLegs,Dog(),sayHello(),sayHello(int newValue),getNumberOfLegs(),Cat:,int numberOfLegs,Cat(),sayHello(),sayHello(int newValue),getNumberOfLegs(),Frog:,int numberOfLegs,Frog(),sayHello(),sayHello(int newValue),getNumberOfLegs(),hasGills(),laysEggs(),WaterAnimal:,hasGills(),laysEggs(),LandAnimal:,getNumberOfLegs(),Animal:,boolean mammal,boolean carnivorous,int mood,isMammal(),isCarnivorous(),setMood(int newValue),getMood(),sayHello(),sayHello(int moodval),5,难点分析-2 Dog:Cat:Frog:WaterAnima,阶段划分,第一阶段(60分钟):不考虑情绪影响动物打招,呼的方式,第二阶段(40分钟):考虑情绪影响动物打招呼,的方式,第三阶段(60分钟):考虑陆生动物和水生动物,6,阶段划分第一阶段(60分钟):不考虑情绪影响动物打招6,第一阶段,第一阶段(60分钟):不考虑情绪影响动物打招呼的方式,编写Animal类,没有mood属性,只有一种SayHello方法;,编写Dog类、Cat类和Frog类,分别继承自Animal类,实现与Animal类不同的功能;,编写main方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性;,要求学员自己动手编码,在编码的过程中解答学员提出的问题,7,第一阶段第一阶段(60分钟):不考虑情绪影响动物打招呼的方式,阶段检查,针对第一阶段抽查学员的编码结果,教员给出点评,8,阶段检查针对第一阶段抽查学员的编码结果8,第一阶段标准代码演示,第一阶段编码的结果:,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();,abstract,abstract,protected,protected,class 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(呱呱呱);,extends,extends,extends,public String sayHello()return(摇摇尾巴);,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.println(狗是哺乳动物);,else,System.out.println(狗不是哺乳动物);,if(animal1.isCarnivorous(),System.out.println(狗是肉食动物);,else,System.out.println(狗不是肉食动物);,System.out.println(狗通常的情况下,和人打招呼的方式为:+animal1.sayHello();,Dog animal1=new Dog();,Cat animal2=new Cat();,Frog animal3=new Frog();,animal1.isMammal(),animal1.isCarnivorous(),animal1.sayHello(),9,第一阶段标准代码演示第一阶段编码的结果:abstract,第二阶段,第二阶段(40分钟):考虑情绪影响动物打招,呼的方式,扩充Animal类、Dog类、Cat类和Frog类,增加 Animal类的mood属性,并实现SayHello方法的多态性;,扩充main方法;,要求学员自己动手编码,在编码的过程中解答,学员提出的问题,10,第二阶段 第二阶段(40分钟):考虑情绪影响动物打招10,阶段检查,针对第二阶段抽查学员的编码结果,教员给出点评,11,阶段检查针对第二阶段抽查学员的编码结果11,第二阶段标准代码演示,第二阶段的编码结果:,abstract class Animal,public static final int SCARED=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();,abstract 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;,public 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(旺旺旺叫);,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 class 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);,12,第二阶段标准代码演示第二阶段的编码结果:abstract c,第三阶段,第三阶段(60分钟):考虑陆生动物和水生动物,定义LandAnimal接口和WaterAnimal接口;,扩充Dog类、Cat类和Frog类,使其实现相应的接口;,扩充main方法;,要求学员自己动手编码,在编码的过程中解答
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6