已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京传智播客教育 C 面向对象基础 让子弹飞 讲师 赵晓虎 简要复习 Try catch finallyStatic索引器this intindex this strings 索引器是可以重载的 Namespace 今天要用到的技能点 抽象类 抽象方法的运用方法重写virtual abstract和override 类 属性 成员变量 方法 等的运用C 绘图技术GDI 图形设备接口 简单介绍 Timer控件 Panel控件体会方法重载IsHit 方法课前热身 GDI 绘制 某产品年度销售情况 传智播客员工通讯录 类设计 关于C 画图的一些介绍1 GDI 命名空间 System Drawing 基本绘图操作 Graphics对象 可以理解为一只画笔 要在哪个控件上绘图 就要得到对应控件的Graphics对象 就是获得对应控件的绘图表面 获得Graphics对象一般有两种方式 1 控件 CreateGraphics 通过该方式创建后要调用g Dispose 方法释放资源 2 在重写OnPaint 方法中通过参数PaintEventArgse Graphics 来获得 一般使用为Paint事件中 通过这种方式一般不需要手动调用Dispose 区别OnPaint 与窗体的Paint事件 画一些简单图形 什么样类型的对象需要使用完成后Dispose 答 Pen Brush Font Image Ico FileStream 文件操作 网络操作等 在这些类中封装了一些操作系统的资源 Pens XXX或Brushes XXX等不需要 手动创建的才需要 强行释放资源会出错 关于C 画图的一些介绍2 GDI 中的坐标系 原点在左上角 X水平向右为正 Y垂直向下为正 Demo 鼠标移动 显示坐标 定义一个图形的坐标 即指定了该图形离顶部与左边的距离 每个控件的左上角都是 0 0 问题 完成一篇word文档 在电脑上和打印机上显示效果一样 为什么 世界坐标 逻辑坐标 页面坐标 设备坐标 为了简单理解即可 从使用的角度看 GDI 坐标系是一种转换规则 把你所制定的逻辑数据转换成最终设备驱动所能使用的数据 Point Size Rectangle 封装 对 坐标 的封装DrawXXX 画各种图形 PenFillXXX 填充 画实心的 Brush 热身1 某工厂某产品的年度销售情况表 知识点 虚方法 使用virtual关键字修饰 使用virtual关键字修饰的方法在本类中必须有实现 哪怕是空的 虚方法存在的意义就是为了让子类重写 子类可以重写 也可以不重写 方法重写 只有用virtual abstract override修饰的方法在继承后子类可以重写 实现方法重写的方式3个关键字什么是方法重写 答 方法重写是指子类继承父类后在子类中有一个与父类中某个方法签名一致 但方法内容可以重新定义的方法 并用override关键字修饰 抽象类 abstract关键字修饰 不能实例化 可以有抽象成员也可以有非抽象成员 1 有抽象成员的类必须标记为abstract 并且不能有任何实现 2 类中的抽象成员在子类中必须实现 override 除非子类也是抽象类 virtual方法和abstract方法的区别 virtual方法子类可以override 也可以不override Abstract标记的成员在子类中必须override 除非子类也是抽象类 ToString 方法 Equals 来自于Object 任何类都有 通过override有了不同的实现 举例 自己的类实现ToString 思考 父类到底要不要写成抽象类 抽象类的意义 不能从抽象类创建对象 它的意义在于被扩展 代码重用 多态 简化了isDataType的判断 普通类的继承能实现多态吗 方法重写的意义 为所有子类定义了某种规范 某种必须有的规范 多态 这里的规范可以理解为 行为 就是方法 以后用到得接口等中提到的规范 其实目的就是让新增加的类必须具有某些方法 这样才能满足我们程序中的要求 对程序扩展做了一定的约束 练习 练习1 形状类Shape 父类 包含Size属性和计算面积getArea 方法 圆类Circle继承Shape 可以计算圆的面积 正方形类Square继承Shape 可以计算正方形面积 最终要求能实现 Shapesh newCircle 5 sh getArea 能计算出圆的面积 Shapesh newSquare 5 sh getArea 能计算出正方形的面积 热身 传智播客员工通讯录 传智播客员工通讯录的类设计 员工 属性 姓名 联系电话 Email 方法 Print 将自己的信息画到Panel上 讲师 继承自员工 有自己特有的 市场人员 继承自员工 有自己特有的教学部经理 继承自讲师 重写Teach 方法 内容变成了 讲公开课 市场部经理 继承自市场人员 重写Publicize 方法 内容变成了 区域宣传 注意 所有人员均有显示自己详细信息的功能 姓名 电话 Email 职位 在类设计过程中考虑是否使用抽象类方法重写时 考虑使用virtual还是abstract 为什么 某个类到底应该从谁来继承 比如SellerManager应该直接继承自Seller而不是Employee 测试传智播客员工通讯录类的设计 新建一个窗体该窗体有一个泛型集合 父类数组代替 用来存储员工信息窗体加载时初始化5位员工 其中包括2个经理 3个普通员工 单击 显示 按钮时 循环将所有员工信息通过 画图 Graphics 显示到Panel上 注意 体会父类指向子类时的方法调用 多态就是通过这个实现的 这就是为什么我们总是Personp newChinese 而不是Chinesec newChinese 让子弹飞 游戏介绍 演示游戏 分析游戏中的对象和类 Plane位置 X Y 被击中次数HitTimes速度Speed是否被击中IsHit飞机的有效区域Rectangle类型FieldArea大小Size 方法 Draw 把自己会知道控件上Move 方法Bullet位置 X Y 速度Speed大小Size有效区域Rectangle类型 FieldArea 方法 Hit 判断击中目标了吗 Move 移动Draw 绘制自身开始攻击Fire 抽象Plane与Bullet的父类 GameObject 属性 坐标X Y速度Speed大小Size区域FieldArea方法 移动Move 绘制自身Draw 开始编写窗体代码 首先添加需要的资源到Resources 方便稍后使用 这种方式可将图片 音频等资源直接编译到exe或dll文件中 将来程序发布时只需要一个可执行文件即可 无需发布所有图片 音频等其他资源 与web程序不同 第一步 窗体一开始运行就需要一个飞机 plane Draw 让飞机动起来 plane Move 在窗体上添加Plane成员变量 第二步 单击鼠标时需要产生一个子弹 bullet Draw 并且子弹需要 飞 bullet Move 何时判断是否相撞 在哪里写代码 判断相撞的代码应该写在哪个类 PlaneorBullet 完成IsHit 判断是否相撞的代码 当飞机第一次被击中时 控制闪烁 通过两个变量 plane isHit plane isVisible 飞机被击中两次后 播放声音 并重新实例化一架飞机 扩展 又增加了一个飞船 体会Bullet类的IsHit 方法的设计 体会方法重载IsHit Planeplane IsHit Shipship 总结 如何分析系统中的类和对象 Virtual注意 1 使用virtual关键字表示方法 写在返回值的签名publicvirutal或virtualpublic2 使用virutal关键字修饰的方法必须有实现 3 子类可以重写 也可以不重写 子类重写时使用override关键字 注 方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险理赔行业技术规范
- 厂家机械出售合同范本
- 云计算服务市场调查报告
- 投资基金合作协议的风险分析
- 合肥市房屋出租协议书
- 合伙购买股权合同范本
- 光伏型材购买合同范本
- 制作宣传资料合同范本
- 保鲜冰袋采购合同范本
- 卖房子用不用写协议书
- 统编版道德与法治小学三年级上册教学设计
- 2025年儿童收养寄养协议书范本
- 国家安全与青年担当
- 第十四章其他原因引起的语言障碍讲解
- 船舶机舱进水的应急处理
- 大学生化学实验竞赛试题及答案
- 班级管理(延边大学)知到智慧树章节答案
- 湘教版九年级上册数学期中考试试卷及答案解析
- 带班育人方略班会-《从“埋头苦干”走向“抬头巧干”》【课件】
- 心肌梗死患者的便秘护理
- 中华人民共和国能源法
评论
0/150
提交评论