面向对象的编程基础

面向对象的编程基础

ID:38341401

大小:340.81 KB

页数:30页

时间:2019-06-10

面向对象的编程基础_第1页
面向对象的编程基础_第2页
面向对象的编程基础_第3页
面向对象的编程基础_第4页
面向对象的编程基础_第5页
资源描述:

《面向对象的编程基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章面向对象的编程基础4.1类在面向对象的程序设计中,类是面向对象程序设计的核心。在面向对象的概念里,现实世界的个体的数据抽象化为对象的数据成员(字段),个体的特性抽象化为对象的属性,个体的行为及处理问题的方法抽象化为对象的方法或事件。类是对某一类对象的抽象;而对象是某一种类的实例。对象可以执行类定义的方法来访问其属性、事件和字段。C#与C++的类不同在于不支持多重继承,但通过接口(interface)可实现多重继承。4.1类4.1.1C#类的声明和对象的创建C#类的一般声明格式如下:[访问修饰符]class<类名>{字段变量声明构造

2、函数方法……};4.1类其中,class是定义类的关键字。访问修饰符用于控制类中数据和方法的访问权限,C#语言中有以下几种访问权限:(1)public:任何外部的类都可以不受限制的存取这个类的方法和数据成员。(2)private:类中的所有方法和数据成员只能在此类中使用,外部无法存取。(3)protected:除了让本身的类可以使用之外,任何继承自此类的子类都可以存取。(4)internal:在当前项目中都可以存取。该访问权限一般用于基于组件的开发,因为它可以使组件以私有方式工作,而该项目外的其它代码无法访问。(5)protectedi

3、nternal:只限于当前项目,或者从该项目的类继承的类才可以存取。4.1类4.1.2类的成员类的成员根据是否为函数可将其分为数据成员(常量、字段)和函数成员(方法、属性、事件、构造函数、析构函数等)。类的成员具体含义如下:(1)常量:它代表了与类相关的常数数据。(2)字段(或称域):字段是表示与对象或类关联的变量,如上例公有类employee中的No、name、sex和address。(3)方法:方法是实现可以由对象或类执行的计算或操作的成员。如上例employee类中disp_employee()、Main()方法。(4)属性:属性

4、是对象或类的特性。与字段不同,属性有访问器,这些访问器指定要在它们的值被读取或写入时执行的语句。这些语句可以对字段属性进行计算,并将计算结果返回给相关字段。4.1类(5)事件:它定义了由类产生的通知,用于说明发生什么事情。(6)实例构造函数:它执行需要对类的实例进行初始化的动作。(7)析构函数:它行在类的实例要被永远丢弃前要实现的动作。(8)静态构造函数:执行静态构造函数主要用来初始化一个类的静态成员。静态构造函数只在.NET运行时加载类时执行一次,以初始化静态字段。它没有访问修饰符,也没有参数,也只能有一个,因为C#代码从来不会调用它

5、。4.1类4.1.3类的构造函数和析构函数构造函数和析构函数是在类体中说明的两种特殊的成员函数。构造函数的功能是在创建实例(也就是对象)时,使用给定的值来将实例初始化。析构函数的功能是用来从内存中释放一个实例的,在删除实例前,用它来做一些清理工作,它与构造函数的功能正好相反。构造函数的特点如下:(1)构造函数是成员函数,该函数的名字与类名相同。(2)构造函数是一个特殊的函数,该函数无数据类型,它没有返回值。构造函数可以重载,即可以定义多个参数个数不同的函数。(3)构造函数访问权限总是public。如果是private,则表示着该类不能被

6、实例化,这通常在只含有静态成员的类中。4.1类(4)程序中不能直接调用构造函数,在创建实例时系统自动调用构造函数。(5)如果类没有为对象提供构造函数,则默认情况下C#将创建一个默认的构造函数,该构造函数实例化对象,并将所有成员变量设置为相应的默认值。析构函数的特点如下:(1)析构函数是成员函数,函数体可写在类体内,也可定在类体外。(2)析构函数也是一个特殊的函数,它的名字同类名,并在前面加“~”字符,用来与构造函数加以区别。析构函数不能有参数,无数据类型。(3)一个类中只可能定义一个析构函数。当撤销对象时,析构函数自动被调用。析构函数不

7、能被继承和重载。4.1类4.1.4静态成员和实例成员类的成员要么是静态成员,要么是实例成员(非静态成员)。当用static修饰符声明后,则该成员是静态成员。如果没有static修饰符,则该成员是实例成员。两者不同在于静态成员属于类所有,为这个类所有实例共享。而实例成员属于类的实例所有。【例4-3】下面举一个例子,说明实例成员和静态数据成员的应用。4.1类4.1.5分部类分部类可以将类(结构或接口等)的声明拆分到两个或多个源文件中。若要拆分类的代码,被拆分类的每一部分的定义前边都要用partial关键字修饰。分部类的每一部分都可以存放在不

8、同的文件中,编译时会自动将所有部分组合起来构成一个完整的类声明。publicpartialclassMyclass//文件1a.cs{//代码1略}publicpartialclassMyclass//文件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。