北京传智播客教育
C#面向对象基础---让子弹飞
讲师:赵晓虎
1
简要复习
Try-catch-finally
Static
索引器this[int index],this[string s],索引器是可以重载的。
Namespace
2
今天要用到的技能点
抽象类、抽象方法的运用
方法重写virtual、abstract和override
“类”、”属性”、“成员变量”、“方法”等的运用
C#绘图技术GDI(图形设备接口,简单介绍)
Timer控件、Panel控件
体会方法重载IsHit()方法
课前热身:
GDI+绘制“某产品年度销售情况”
《传智播客员工通讯录》类设计
3
关于C#画图的一些介绍1(GDI+)
命名空间:;(基本绘图操作)
Graphics对象,可以理解为一只画笔,要在哪个控件上绘图,就要得到对应控件的Graphics对象(就是获得对应控件的绘图表面)。获得Graphics对象一般有两种方式:()//()方法释放资源。()方法中通过参数PaintEventArgs ;来获得,一般使用为Paint事件中。//通过这种方式一般不需要手动调用Dispose();区别OnPaint()与窗体的Paint事件。(画一些简单图形)
什么样类型的对象需要使用完成后Dispose()?答:Pen,Brush,Font,Image,Ico,FileStream(文件操作),网络操作等。 (在这些类中封装了一些操作系统的资源)//,手动创建的才需要。强行释放资源会出错.
4
关于C#画图的一些介绍2
GDI+中的坐标系。
原点在左上角。X水平向右为正,Y垂直向下为正。 (Demo,鼠标移动,显示坐标)//定义一个图形的坐标,即指定了该图形离顶部与左边的距离。//每个控件的左上角都是(0,0)
问题:完成一篇word文档,在电脑上和打印机上显示效果一样,为什么?
世界坐标(逻辑坐标)、页面坐标、设备坐标,为了简单理解即可。
从使用的角度看,GDI+坐标系是一种转换规则,把你所制定的逻辑数据转换成最终设备驱动所能使用的数据。
Point、Size、Rectangle//封装,对”坐标”的封装
DrawXXX(),画各种图形,Pen
FillXXX(),填充,画实心的,Brush
5
热身1:某工厂某产品的年度销售情况表
6
知识点
虚方法:使用virtual关键字修饰,使用virtual关键字修饰的方法在本类中必须有实现,哪怕是空的{}。虚方法存在的意义就是为了让子类重写。子类可以重写,也可以不重写。
方法重写:只有用virtual、abstract、override修饰的方法在继承后子类可以重写。//实现方法重写的方式3个关键字
什么是方法重写?答:方法重写是指子类继承父类后在子类中有一个与父类中某个方法签名一致,但方法内容可以重新定义的方法,并用override关键字修饰。
抽象类:abstract关键字修饰;不能实例化;可以有抽象成员也可以有非抽象成员(,并且不能有任何实现;(override),除非子类也是抽象类);
virtual方法和abstract方法的区别:
virtual方法子类可以override,也可以不override。
Abstract标记的成员在子类中必须override,除非子类也是抽象类。
ToString()方法、Equals()来自于Object,任何类都有,通过override有了不同的实现(举例,自己的类实现ToString())
7
思考:父类到底要不要写成抽象类?
抽象类的意义:不能从抽象类创建对象,它的意义在于被扩展。代码重用、多态(简化了is DataType的判断)。普通类的继承能实现多态吗?
方法重写的意
传智播客课件 来自淘豆网www.taodocs.com转载请标明出处.