4.2《面向对象程序设计》教案概念:计算机描述客观事物类:某些具有相同特征的事物的抽象概念对象:某个抽象概念中的具体实例属性:同类事物之间特征的差异方法:对象本身具有的能力,行为,动作事件:能够促使,激发对象的某方面行为,能力或动作的特定事例。注意:事件和方法都是相对于某一对象来说的如对于某一盏台灯来说,灯亮灯灭是它的方法,通电能激发灯亮,那么通电就是相对于灯亮方法的事件。断电是相对于灯灭方法的事件。面向对象程序设计:围绕真实世界的概念来组织模型,采用对象来描述客观实体,与人类的思维习惯一致。面向对象程序设计的目标:在于编制能符合人们在真实世界中思维模式的软件。让计算机来描述一只宠物猫猫是类(cat)具体某一只猫是对象(acatnamedKetty)猫的属性(猫的共同特征):猫口渴的程度--------口渴度needwater猫饥饿的程度--------饥饿度needfood猫的体型--------------肥胖度fat猫疲劳的程度--------疲劳度tired猫的方法(猫本身拥有的能力或者可以产生的行为,动作)猫吃东西:eat猫喝水:drink猫玩耍:play猫睡觉:sleep下面请同学们思考下,根据我们的习惯思维,相对于猫的这些方法,哪些事件可以激发这些方法?在猫的方法中,我们可以做哪些事情?猫的事件(能够激发猫本身拥有能力、行为或动作的特定事例)主人喂食givefood:引起eat方法Ketty.eat主人喂水givewater:引起drink方法Ketty.drink主人命令猫去活动goplay:引起play方法Ketty.play主人命令猫去睡觉gosleep:引起sleep方法Ketty.sleep猫的方法(猫本身的动作,可以影响猫某些方面的特征,或引发其他事件)如猫吃东西方法:吃东西能影响猫的饥饿度,并且还能影响猫本身的体型猫喝水方法:喝水能影响猫的口渴度猫玩耍方法:玩耍能减肥,影响猫的体型玩耍需要消耗能量和水分,所以影响猫的饥饿度和口渴度玩耍需要消耗体力,所以影响疲劳度猫睡觉方法:睡觉能恢复体力,所以影响疲劳度睡醒以后会饿,影响饥饿度在把程序的基本思路确定下来以后,我们开始编写具体的程序,首先是设计用户界面根据用户的使用习惯,我们在界面上需要显示如图的几个部分小猫的状态:让用户知道小猫当前的各个特征值主人控制部分:通过各个按钮的点击来实现喂养小猫的操作小猫的表现:反馈给用户喂养小猫的效果针对猫的方法编写的程序代码PublicSubdrink()needwater=needwater-1EndSubPublicSubeat()needfood=needfood-1fat=fat+1EndSubPublicSubsleep()tired=tired-1needfood=needfood+1EndSubPublicSubplay()fat=fat-2needwater=needwater+1needfood=needfood+1tired=tired+1EndSub在程序中的“=”是赋值的意思,和数学上的相等不同,在程序里“=”的作用是将“=”右边的表达式的运算结果传递给“=”左边的变量在用户界面确定好以后,我们根据所要实现的功能开始编写具体的程序代码PublicKettyAsNewcat'从小猫这一类中创建一个具体的小猫对象PrivateSubCommand1_Click()'喂食过程Ketty.eat'**************喂食事件引发小猫吃东西方法**********************showInfoEndSubPrivateSubCommand2_Click()'喂水过程Ketty.drink'**************喂水事件引发小猫喝水方法**********************showInfoEndSubPrivateSubCommand3_Click()'命令去玩耍过程Ketty.play'**************命令去做运动事件引发小猫玩耍方法**********************showInfoEndSubPrivateSubCommand4_Click()'命令去睡觉过程Ketty.sleep'**************命令去睡觉事件引发小猫睡觉方法**********************showInfoEndSub调用方法一定要与对象相结合,中间用“.”来分隔,格式为对象名.方法如Ketty.eatKetty.drink在我们把程序代码编写好以后,需要做的操作是调试和运行程序看看程序是否达到我们想要的功能,运行是否正确,会不会出现异常现象在检测无误后,我们可以保存程序并将其编译为一个可执行程序,供其他用户使用本课小结程序编写的模型确定(计算机怎样用类,对象,属性,方法和事件来描述事物)程序编写的一般过程(在程序编写中需要经历的过程及其顺序)赋值号“=”的含义对象的方法,对象的属性如何使用?本课练习:请同学们说说这个程序能不能再完善一下?可以增加哪些方面的功能?如小猫的姓名属性,小猫会叫的方法,小猫饿了事件(产生小猫会叫方法)等,对本程序,你有哪些方面的建议?程序有哪些不足?