毕业设计图书管理系统毕业设计(编辑修改稿)内容摘要:

方法)才可被修改。 封装意味着将数据及相关函数打包到一个单一的单元(类)中。 每个对象暴露一个接口(公用方法),规定其他对象可以如何读取或修改它。  类( class) —— 问题的抽象,对象的模版,接口的实现。 例如 int 是整数的模版、 CPoint 是点的模版。  对象( object) —— 问题中的事物,类的实例(变量),拥有数据和功能。 若 int i。 CPoint p。 则 i 是 int 的实例变量, p 是 CPoint 的实例对象。  实例( instance) —— 一个对象,是某个类的示例。  实例化( intantiate) —— 由类定义创建对象。  继承( inheritance) —— 创建子类的机制,一种“ is a”或“ is like”关系,形成类层次结构。 是 OOP 中对象重用的核心概念。 太原理工大学高等教育自学考试 学生:郑莉 2020 年 5 月 10 日 8  子类( subclass) —— 继承自另一个类的派生类( derived class)。  超类( superclass 父类) —— 被另一个类继承的基类( base class)。  虚函数( virtual function) —— 可以在子类中被覆盖( override)的函数。  纯虚 函数( pure virtual function) —— 只有声明没有定义的函数,必须在派生类中被覆盖。  抽象类( abstract class) —— 至少包含一个纯虚函数的类,不能被实例化。  具体类( concrete class) —— 可以实例化的类,不包含纯虚函数。  接口( interface) —— 纯抽象的类,类的模版。 接口中的所有的方法(成员函数)都只有声明,没有定义(都是纯虚函数)。 必须在接口的派生类中,实现接口的全部方法。 接口可以看成是一个,定义了一套内部行为的,若干操作特征标记的集合。 (在 C++中, 也把类的公用成员函数叫做接口)。  属性( attribute) —— 类和接口中的数据信息,又叫数据成员( data member)或成员变量( member variable)。 属性是类知道的事物。  方法( method) —— 类操作的实现,又叫成员函数( member function)。 方法是类要做的事情。 (在 C++中,也把虚函数叫做方法)。  重载( overload) —— 一个类中的,参数的数目、类型或排列顺序不同的多个同名方法(成员函数)。  覆盖( override) —— 在子类中重新定义(与父类中的定义有区别的 )属性和方法。  持久化( persistence) —— 将对象存入永久存储中(如文件、数据库等)。  持久对象( persistent object) —— 存入永久存储的对象。 面向对象的 C 编程 1.类 类类型定义包含数据成员、函数成员和嵌套类型的数据结构,其中数据成员包括常量和字段,函数成员包括方法、属性、事件、索引器、运算符、实例构造函数、析构函数和静态构造函数。 类类型支持继承,继承是派生类可用来扩展和专门化基类的一种机制。 功能与 C++/CLI 的可见性说明符类似,只是增加了 static 修饰符。 partial(分部的) —— 用于定义分部类、结构和接口等对象类型,即将它们的定义分成多个部分,保存到多个代码文件中。 这是 C 新引进的功能,用于解决大型对太原理工大学高等教育自学考试 学生:郑莉 2020 年 5 月 10 日 9 象类型的定义问题,因为 C 不支持类体之外的方法和函数体定义。 ( 1)访问修饰符 类成员可以有如下访问修饰符( access modifiers):  public(公用的) —— 访问无限制。  protected(保护的) —— 只可被包含类( containing class)或其派生的类型访问。  internal(内部的) —— 只能被此程序访问。  protected internal(保护内部的) —— 只能被此程序或其包含类所派生的类型访问。  private(私有的) —— 只能被其包含类访问,为默认的。 C 类的 public、 protected、 private 等成员修饰符,每次只能修饰一个成员,直接位于成员声明的开始处,而且没有冒号分隔符。 而不是像 C++那样,一个修饰符可以修饰位于其后(直到下一个修饰符为止)的若干成员。 ( 2)数据成员 类的数据成员( data member)有: [ [属性 ] ] [常量修饰符 ] const 标识符 [ = 常量表达式 ] [,„ „ ]。 其中,常量修饰符有: new、 public、 protected、 internal、 private 及它们的有效组合。 类的数据成员可以是静态数据(使用了 static 修饰符),也可以是实例数据(未使用 static 修饰符)。 静态数据为类的所有实例对象所共有,而实例数据则每个实例对象都自己的副本。 常量默认是(总是)静态的。 字段还可以是只读的(使用了 readonly 关键字,这是 C 新增的)和易变的(使用了 volatile 关键字,字段值一般位于 CPU中的寄存器中,高效但是有效期短暂)。 ( 3)函数成员 类的 函数成员( function member)有:  属性( property) —— 提供对对象或类的特性( characteristic)进行访问的成员。 声明格式为: 其中,属性修饰符与方法修饰符相同,访问修饰符有 protected、 internal、private、 protected internal 和 internal protected,与类成员的普通访问修饰符太原理工大学高等教育自学考试 学生:郑莉 2020 年 5 月 10 日 10 相比,没有 public、多了 internal protected(内部保护的)。  事件( event) —— 定义该类可生成的通知( notifications)。 在发生某些行为时,可让对象通知程序。 客户程序可以调用事件处理程序代码来响应该事件。 声明格式为: 其中,事件修饰符与方法修饰符相同。  索引器( indexer) —— 允许对象像数组一样被索引的一种成员。 声明格式为: 其中,索引器修饰符与方法修饰符类似,只是少了 static。  用户定义的运算符( operator) —— 运算符重载函数。 声明格式为:  构造函数( constructor) —— 包括实例构造函数和静态构造函数。  实例构造函数( instance constructor) —— 实现初始化一个类实例所需的行为,会在创 建每个类实例时被系统调用。 注意:因为 C 会自动给字段初始化,所以构造函数在 C 中的作用没有在 C++的大。 格式为:类型名 ([参数列表 ])。 注意:即使调用没有任何参数的默认构造函数,也不能省去后面的圆括号“ ()”,不然是语法错误。 例如: A a = new A()。  静态构造函数( static constructor) —— 实现初始化一个类所需的行为,会在程序装入时被系统调用。 为类编写无参数的具体构造函数是 C 的一个新特征,主要用于类的静态字段或属性的运行时初始化。 格式为: static 类型名 ([参数列表 ])。  终结器( finalizer) —— 在 C 的旧版本中叫析构函数( destructor),但由于引用类型的对象是位于具有垃圾内存自动回收功能的 CLR堆上,所以 C 中的析构函数的功能与 C++的很不一样。 为了与 C++的析构函数有所区别,在C 的新版本中,改叫终结器。 格式(与 C++的析构函数相同)为: ~类型名 ()。 2.结构 C 中的结构( struct)与 C++中的类似,也可以封装数据和函数(属性和行为),是一种轻量级的类。 但是它与 C 的(位于 CLR 堆中的)类(为引用类型)不同,它是一种(位于局部栈 中的)值类型。 1)结构与类的区别 太原理工大学高等教育自学考试 学生:郑莉 2020 年 5 月 10 日 11 C 中的结构与类的区别有:  结构是值类型,而类是引用类型。  结构是密封的( sealed),因此不能被继承。  结构不能继承类和其他的结构。  结构隐式地继承了 类型。  结构的(无参数)默认构造函数不能被自定义的构造函数取代。  结构的自定义的构造函数,必须初始化结构中全部成员的值。  结构没有析构函数。  不允许初始化结构的字段,但是可以初始化结构的常量成员。 2)结构声明 结构的完整声明格式为: 其中,结构的修饰符与枚举修饰符相同: new、 public、 protected、 internal、 private,但是与类的有所不同:因为 C 的结构不支持继承,所以没有类的 sealed 和 abstract修饰符;也没有 static 修饰符;还与 C++一样,结构的默认修饰符为 public(类的默认修饰符为 private)。 结构成员声明与类的基本相同,只是没有 finalizerdeclaration(终结器声明,即析构函数定义)。 C 的结构和类一样,其 public、 protected、 private 等成员修饰符,每次只能修饰一个成员,也是直接位于成员声明的开 始处,而且也没有冒号分隔符。 而不是像C++那样,一个修饰符可以修饰位于其后(直到下一个修饰符为止)的若干成员。 3.分部类和静态类 分部类和静态类都是 C 所特有的,而且都是 C 版新增加的。 前者允许将一个类、结构或接口的定义,放到多个文件中;后者则是仅包含静态成员的类。 1)分部类 分部类和结构是在类和结构的声明中,使用了 partial 修饰符的类和结构。 位于不同文件中的同一个分部类,必须位于同一个命名空间或包含类型(对嵌入式分部类)之中,而且在所有类修饰符必须完全一致。 对泛型类,还要求声明中的类型参数和对类型参数的约束也完全一致。 但是类的属性、基类和实现接口的列表却可以不同。 另外,分部类也可以用作嵌套类,不过其包含类必须也是分部类。 太原理工大学高等教育自学考试 学生:郑莉 2020 年 5 月 10 日 12 编译时,编译器会合并位于不同文件中的同一个分部类的 XML 注释、属性、基类、接口和成员。 2)静态类 静态类是在类的声明中,使用了 static 修饰符的类。 静态类中只能包含静态成员,可以用静态构造函数来初始化这些静态成员。 静态类是密封的(不能派生其他类),静态类不能被实例化,也不能包含实例构造函数。 静态类一般用于定义公用的常数和方法(如 .NET 中的 Math 类),使用时不需要创建实例,直接用“类名 .字段”或“类名 .方法”即可。 例如: 接口与继承 继承( inheritance)是面向对象的基本特征,所有的 C 类和结构都是直接或间接地从类 Object 派生的。 C 中没有明确指出基类的类,都以 Object 作为其默认基类。 C 中的结构不支持继承,但是 C 支持类的单一继承( single inheritance),多重继承的问题(与 Java 一样)需通过接口来解决。 1.接口 接口( interface,界面)的概念来源于组件编程的思想。 接口定义统一的公用方法的原型,但是不包 含方法的具体实现代码,方法体(代码)由实现接口的类来定义(编写)。 所以接口定义的是一种契约( contract),实现该接口的类则遵守( adhere)此契约。 接口相当于组件的界面,供使用组件的用户查询和调用,而实现接口的类则是组件的编码模块本身。 在 C 中,一个接口可以继承自多个接口,一个类也可以实现多个接口。 实现某个接口的类,必须实现该接口中的所有方法。 2.继承的种类 C 中的继承有两种类型:  实现继承(类继承) —— 派生类型继承了基类型的所有成员,包。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。