第7章面向对象的程序设计-Read.ppt
文本预览下载声明
第7章 面向对象的程序设计 ;7.1 循序渐进学理论 ;2.面向对象程序设计的基本概念 ;
(4)继承
类之间除了有相互交流或访问的关系以外,还可能存在着一种特殊的关系,这就是继承。在Visual C#中只支持单继承,即一个派生类只能有一个基类。
(5)重载
重载指的是方法名称一样,但如果参数不同,就会有不同的具体实现。重载主要有两类:方法重载及运算符重载。
(6)多态性
所谓多态性就是在程序运行时,面向对象的语言会自动判断对象的派生类型,并调用相应的方法。 ;7.1.2 类和对象的声明 ;2.对象的声明 ;? 事件:由类产生的通知,用于说明发生了什么事情。
? 索引器:允许编程人员在访问数组时,通过索引器访问类的多个实例。又称下标指示器。
? 运算符:定义类的实例能使用的运算符。
? 构造函数:在类被实例化时首先执行的函数,主要是完成对象初始化操作。
? 析构函数:在对象被销毁之前最后执行的函数,主要是完成对象结束时的收尾操作。
(2)类成员的可访问性
在编写程序时,可以对类的成员使用不同的访问修饰符,从而定义它们的访问级别,即类成员的可访问性(Accessibility)。 ; 在C#中,根据类成员的可访问性可以把类成员分成四类,分别是公有成员(public)、私有成员(private)、保护成员(protected)、内部成员(internal)。
(3)类的静态成员和实例成员
类的成员又可以分成静态成员和非静态成员。在声明成员时,如果在语句前加上static保留字,则该成员是静态成员,如果没有static保留字,则成员是非静态成员。二者最重要的区别是:静态成员属于类所有,非静态成员属于类的实例所有,所以又称实例成员。 ;7.1.3 类的构造函数和析构函数 ; (3)构造函数的访问修饰符总是public。如果是private,则表示这个类不能被实例化,这通常用于只含有静态成员的类中。
(4)构造函数由于不需要显式调用,因而不用声明返回类型。
(5)构造函数可以带参数也可以不带参数。
2.析构函数
析构函数在对象销毁时被调用,常用来释放对象占用的存储空间。析构函数具有以下特点。
(1)析构函数不能带有参数。
(2)析构函数不能拥有访问修饰符。 ;(3)不能显式地调用析构函数。
(4)析构函数的命名规则是在类名前加上一个“~”号。如上例的Example1类的析构函数为:
~Example1()
{
};
(5)析构函数在对象销毁时自动调用。
【例7-3】 类的构造函数和析构函数的演示。(程序代码详见例7-3)[执行结果] ;7.1.4 类的方法及方法的重载 ;【例7-4】 静态方法和动态方法的演示。请观察并分析下列程序的执行结果。(程序代码详见例7-4)
[执行结果] ;3.参数数组 ;【例7-5】 参数数组的演示。请观察并分析下列程序的执行结果。 (程序代码详见例7-5)
[执行结果] ;4.方法的重载 ;7.1.5 运算符重载 ;【例7-7】 运算符重载的演示。请观察并分析下列程序的执行结果。 (程序代码详见例7-7)
[执行结果] ;7.1.6 域与属性 ;2.属性 ;7.1.7 this关键字 ;7.1.8 类的继承 ; 【例7-10】 类继承的演示。请观察并分析下列程序的执行结果。 (程序代码详见例7-10)
[执行结果] ;7.1.9 多态性 ;【例7-11】 虚函数与多态性的演示。请观察并分析下列程序的执行结果。(程序代码详见例7-11)
[执行结果] ;7.1.10 密封类与抽象类 ;7.2 典型实例练能力 ;图7-1 时钟类测试界面 ;7.2.2 典型实??二:复数“*”运算及复数值设置的实现 ;图7-2 复数“*”运算及复数值设置的运行界面 ;7.3 上机练习重应用 ;;图7-4 栈演示运行界面 ;7.3.2 上机练习二:从shape类派生出Rectangle、Circle等具体形状类 ;图7-5 形状类及其派生类验证运行界面
显示全部