- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual C# .NET程序设计 第7章 面向对象的程序设计 本章要点: ? 面向对象的基本概念 ? 类的定义与对象的声明 ? 构造函数和析构函数 ? 类的静态成员和实例成员 ? 方法重载及运算符重载的编程实现 ? 类的继承与多态性的编程实现 ? 类的属性的实现 7.1 循序渐进学理论 7.1.1 面向对象程序设计概述 1.面向对象程序设计的由来 面向对象的程序设计是一种基于结构分析的、以数据为中心的程序设计方法。面向对象的程序设计方法总体思路是:将数据及处理这些数据的操作都封装(Encapsulation)到一个称为类(Class)的数据结构中,在程序中使用的是类的实例——对象。对象是代码与数据的集合,是封装好了的一个整体,对象具有一定的功能。也就是说对象是具有一定功能的程序实体。程序是由一个个对象构成的,对象之间通过一定的“相互操作”传递消息,在消息的作用下,完成特定的功能。 2.面向对象程序设计的基本概念 (1)类和对象 通常把具有同样性质和功能的东西所构成的集合叫作类。 (2)属性、方法与事件 属性是对象的状态和特点。 方法是对象能够执行的一些操作,它体现了对象的功能。 事件是对象能够识别和响应的某些操作 。 (3)封装 所谓的封装,就是将用来描述客观事物的一组数据和操作组装在一起,形成一个类。 (4)继承 类之间除了有相互交流或访问的关系以外,还可能存在着一种特殊的关系,这就是继承。在Visual C#中只支持单继承,即一个派生类只能有一个基类。 (5)重载 重载指的是方法名称一样,但如果参数不同,就会有不同的具体实现。重载主要有两类:方法重载及运算符重载。 (6)多态性 所谓多态性就是在程序运行时,面向对象的语言会自动判断对象的派生类型,并调用相应的方法。 7.1.2 类和对象的声明 1.类的声明 [格式]:class 类名[:基类类名] { 成员定义列表; } 【例7-1】 定义一个Student类,用来对学生的信息和功能进行描述。假设学生具有学号、姓名、年龄、性别、平均成绩等特征,并且具有设置学生特征和显示学生特征的功能。 2.对象的声明 [格式]:类名 实例名=new 类名([参数]); 3.类的成员 (1)类成员的分类 类的具体成员如下。 ? 常量:用来定义与类相关的常量值。 ? 域(字段):类中的变量,相当于C++中的成员变量。 ? 方法:完成类中各种计算或功能的操作。 ? 属性:定义类的特征,并对它们提供读、写操作。 ? 事件:由类产生的通知,用于说明发生了什么事情。 ? 索引器:允许编程人员在访问数组时,通过索引器访问类的多个实例。又称下标指示器。 ? 运算符:定义类的实例能使用的运算符。 ? 构造函数:在类被实例化时首先执行的函数,主要是完成对象初始化操作。 ? 析构函数:在对象被销毁之前最后执行的函数,主要是完成对象结束时的收尾操作。 类成员的可访问性 在编写程序时,可以对类的成员使用不同的访问修饰符,从而定义它们的访问级别,即类成员的可访问性(Accessibility)。 public private protected internal internal protected new (1)公共成员 它通过在成员声明中加public修饰符来定义。“公共的”直觉意义是“无限制访问”,定义的成员可以在类的外部进行访问。 (2)保护成员 保护成员通过在成员声明中使用protected修饰符来定义。为了方便派生类的访问,但又不希望其他无关类随意访问,这时就可以使用protected修饰符,将成员声明为保护的。 (3)私有成员 私有成员通过在成员声明中使用private修饰符来定义。C#中的私有成员只有类中的成员可以访问,在类的外部是禁止直接访问私有成员的。这也是C#中成员声明的默认方式,即若在成员声明时没有使用任何访问修饰符,那么C#自动将它限定为私有成员。 (4)内部成员 内部成员通过在成员声明中使用internal修饰符来定义。该成员只能被程序集中的代码访问,而程序集之外的代码无法访问。 (5)保护内部成员 同一个程序集中的所有类,以及所有程序集中的子类都可以访问 。 (6)new new关键字可以在派生类中隐藏基类的方法,也就说在使用派生类的方法是调用的方法是New关键字新定义出来的方法,而不是基类的方法。 namespace
文档评论(0)