版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3
章面向对象程序设计及类的概念本章节授课目标面向对象程序设计思想类的定义与使用入门23面向对象程序设计思想以程序员的角度观察下面的画面4传统的编程语言如何处理游戏人物数据?以C语言为例,可以通过定义结构来描述游戏人物数据游戏人物包含的属性数据:生命值、法力、攻击力、防御力、武器属性等游戏人物对应的行为:攻击,防御等。structchar{intlife;intmagic;intattack;intdefense;weaponwp;
};structweapon{…}缺点:结构只能描述属性,不能描述动作。5对传统的结构进行改造,增加执行动作(函数)的能力就很完美了。高级改进版structchar{intlife;intmagic;intattack;intdefense;weaponwp;
functionvoidattackTo(){}functionvoidxxx(){}};structweapon{…}增加描述动作的能力这种新的数据类型就是“类”6面向对象的思考方式任何事物都可以包含属性,也可以含有动作。任何事物都是对象,都可以理解为某种类型的实例。观察教室里面的事物,描述该事物具有的属性和可以做出的动作,思考如何在程序代码中去定义和使用它们?7面向对象的思考方式传统编程语言的数据类型只能描述事物的属性,如教师的体重、姓名、身高等面向对象编程语言中把一切事物都看成一种数据类型(类)的实例,类中中可以包含属性和动作两种数据。8理解“类”与“实例”的关系面向对象编程中的类与实例的关系类(class)是一种数据类型,是抽象的和不以实例形式存在的。实例对象(instance)是类型的实例,是真实存在的。一个类可以有多个不同的实例。国家{
国旗;
国土面积;
国花;
国歌;}中国{
五星红旗;960万平方公里;
牡丹;
义勇军进行曲;}…类实例9面向对象程序设计的特性10OOP(ObjectOrientedProgramming)面向对象程序设计OOP特性抽象性
提炼与业务相关的信息使用。
封装性
把复杂的信息和操作隐藏在类(class)内部,对外提供的使用方法很简单。
例如:导弹发射程序内部计算处理很复杂,对外提供的接口可能就是一个按钮。11继承性
后代程序代码可以拥有祖先类具备的能力,可以通过继承逐代增强类实例能力和减少重复代码的编写。
例如:动物类是祖先类,具有体重、体温等属性,哺乳动物就可以继承动物类的特性。多态性祖先类具备的行为能力有可能在后代类中发生变化,即便祖先类相同,不同的后代类的程序行为也是可以各不相同的。
例如:动物基本都有进食行为,但是不同子类的进食行为各不相同。12面向对象编程思想小结面向对象编程思想最核心的理念:一切皆是类。解决了传统语言的数据类型只能定义属性,无法描述行为的问题。程序中的绝大部分变量都是类实例,类实例中存贮着程序数据,执行着程序行为。面向对象编程思想的特性就是大家经常提起的OOP三大支柱:封装、继承、多态。类(class)就是能描述属性和动作的一种数据类型13类的定义与使用14面向对象程序设计与类之间的关系面向对象的思想中一切事物都是对象,都属于某一种类
面向对象程序设计思想(OOP)的三大支柱在类中都有体现
java中的一切都是类,可以定义从整数到飞机的任何一种数据类型和实例。java语言中的修饰符、继承、类封装、方法重写等都是OOP思想的体现。15类代码的组成结构类里面包含的主要代码分为两类属性(field)
方法(method)描述类型的属性信息,如游戏人物类的生命值属性描述类型的行为信息,如游戏人物类的攻击、防御等动作类属性方法static、final、private、protected、publicconstructor、static、final、private、protected、public、override、orverload16如何定义类类定义语法:示例:[修饰符]class类名[extends父类][implements接口]{}publicclassStudent
{publicStringstuName;publicintage;}17如何使用类“类”是抽象概念,不是实体,是数据类型,使用时需要“实例化”,即需要定义变量才可以使用。一般情况下需要实例化以后才可以使用类,使用”new”关键字来调用类的“构造函数”来创建类的实例对象。Student就相当于一种新创造出的数据类型一样来定义变量,然后通过new加类名及构造函数来创造类的一个新实例。publicclassStudent
{publicStringstuName;publicintage;}Student
zhangsan=newStudent();zhangsan.stuName=“张三”;zhangsan.age=20;18关键字new关键字new可用来创造出一个类的实例对象。语法:类名类实例变量名称=new类名(构造函数参数);从内存中圈定一块空闲区域然后让类实例变量指向该区域。变量19publicclassStudent
{publicStringstuName;publicintage;publicStudent(){age=20;}}构造函数构造函数(又名构造方法、构造器、constructor)在创建类的实例时执行的函数。语法:class类名{[修饰符]类名(){}}无参构造函数,注意无返回值20乱了吗?类是数据类型,定义类的过程就是创造新的数据类型的过程。可以通过new来创造出一个新的类实例,然后让多个变量来指向它。就像创造出一个气球,然后拴上N根绳子。类代码里面负责定义属性(field)和方法(method),然后在类实例变量中去使用,如学生类有姓名、年龄属性,使用时是具体的实例学生张三去使用的。创造新的类实例的时候一定会调用类的构造函数,构造函数就是一个没有返回值的、和类同名的一个方法。21小结有问题吗?22总结本章重点讲解了:面向对象程序设计思想OOP的四大特性:抽象、封装、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年初创公司股权分配合同
- 2024年夫妻财产分割起诉状
- 2024年会议中心展位装饰协议
- 2024年合伙人股权比例确认书
- 2024年修订版:知识产权质押融资合同
- 2024年企业高层管理培训合同
- 2024年乘用车出口业务框架合同
- 桥梁施工信息化管理方案
- 2024年产品代理合同(供应商版)
- 2024年专用版:印刷制品保密协议书
- 机电一体化职业生涯
- 中国电信新疆公司竞聘考试试题
- 妇科护理进修汇报
- 新团员团课培训课件
- 学校篮球教练外聘协议书
- 工作流程改进汇报
- 浙教版六年级劳动项目三-任务二《创意班规巧设计》课件
- 高思学校竞赛数学课本五年级
- 计算机应用与人工智能基础项目9 人工智能
- 油田开发方案及调整方案经济评价技术要求
- 物业管理应急响应能力提升及案例分析
评论
0/150
提交评论