《第7章面向对象编程技术.ppt》由会员分享,可在线阅读,更多相关《第7章面向对象编程技术.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1章章 程序设计语言与程程序设计语言与程序设计方法序设计方法第第2章章 Visual C#概述概述第第3章章 C#语法基础语法基础第第4章章 顺序结构程序设计顺序结构程序设计第第5章章 选择结构程序设计选择结构程序设计第第6章章 循环结构程序设计循环结构程序设计第第7章章 面向面向对象编程技术对象编程技术第第8章章 继承继承第第9章章 数组与自定义类型数组与自定义类型第第10章章 菜单、工具栏与状态栏菜单、工具栏与状态栏第第11章章 文件操作文件操作第第12章章 数据库技术数据库技术第第13章章 ActiveX控件控件第第14章章 异常处理与跟踪调试异常处理与跟踪调试第第15章章 开发开发
2、Web应用程序应用程序第第16章章 部署应用程序部署应用程序下一页下一页Visual C#Visual C#程序设计教程程序设计教程 上一页上一页 章节目录章节目录上一页上一页下一页下一页第第7 7章章 面向对象编程技术面向对象编程技术7.1 类和对象类和对象 7.1.1 类和对象概述类和对象概述 现实生活中的类是人们对客观对象不断认识而产生的抽象的概念,而对象则是现实生活中的一个个实体。面向对象程序设计的类概念从本质上和人们现实生活中的类概念是相同的。类是一种数据类型,在C#中,类分为两种:由系统提供的预先定义的,这些类在.NET框架类库中;用户定义数据类型。章节目录章节目录上一页上一页下一
3、页下一页 在创建对象之前必须先定义该对象所属的类。然后由类声明对象。在Visual Studio.NET集成环境中的,工具箱中的一个个控件,是被图形文字化的可视的类,而把这些控件添加到窗体设计器中后,窗体设计器中的控件则是对象,即由工具箱中的类创建的对象。章节目录章节目录上一页上一页下一页下一页7.1.2 类定义类定义 在类定义中需要使用关键字class,其简单的定义格式为:class 类名类名 类体类体 “类名”是一个合法的C#标识符,表示数据类型(类类型)名称,“类体”以一对大括号开始和结束。在一对大括号后面可以跟一个分号,也可以省略分号。章节目录章节目录上一页上一页下一页下一页例如:cl
4、ass Student /类名为类名为Student public string ID,Name,Sex;void study()定义了一个名为“Student”(学生)的类,类体 中 包 括 学 生 的 学 号(“ID”)、姓 名(“Name”)与性别(“Sex”);还定义了study()方法。章节目录章节目录上一页上一页下一页下一页 “类体”包括类中的所有数据及对数据的操作,面向对象程序设计将数据与对数据的操作作为一个整体,以类的形式进行定义,这种机制叫“封装”。在“类体”中,所有的数据及对数据的操作的集合叫类成员,类成员的种类很多,本章仅介绍“字段”、“属性”、“方法”与“构造函数”。“
5、字段”是类定义中的数据,也叫类的变量。在上例中定义的“ID”、“Name”与“Sex”等均为类中的字段。如果需要在类定义的多个方法中使用某个变量,该变量应该声明为字段。章节目录章节目录上一页上一页下一页下一页 “属性”用于读取和写入“字段”值,“属性”是字段的自然扩展,对用户而言,“属性”等同于“字段”本身,对程序员而言,属性是一种读写“字段”的特殊方法。“方法”实质上就是函数,通常用于对字段进行计算和操作,即对类中的数据进行操作,以实现特定的功能。章节目录章节目录上一页上一页下一页下一页7.1.3 声明与使用对象声明与使用对象 1.声明对象声明对象 声明对象的格式与声明基本数据类型的格式相同
6、,其语法格式为:类名类名 对象名对象名;例如:Student s1;/声明一个学生类对象s1 对象声明后,需用“new”关键字将对象实例化,。实例化的语法格式:对象名对象名=new=new 类名类名();();例如:s1=new Student();/为s1分配内存 章节目录章节目录上一页上一页下一页下一页 2.访问对象访问对象 访问对象实质是访问对象成员,对对象变量成员的访问使用“.”运算符。例如:s1.ID=2005001;s1.Name=张三;s1.Sex=女;使用对象变量为另一对象变量整体赋值,例如,“Student s2;s2=s1;”或“Student s2=s1;”。可以使用对象
7、中的某一成员为变量赋值。例如:string sName=s1.Name;章节目录章节目录上一页上一页下一页下一页7.1.4 值类型与引用类型值类型与引用类型 1.值类型 值类型变量直接包含其本身的数据,因此每个值类型变量本身就包含有赋给它的值。在C#中,内置数据类型除了字符串(string)类型与对象(object)类型外其余均为值类型。枚举类型与结构类型也是值类型。例如“int x=42;”,整型变量x就是值类型。2.引用类型类型 与值类型不同,引用类型变量本身不包含数据,只是存储对数据的引用,数据保存在内存的其他位置。章节目录章节目录上一页上一页下一页下一页7.1.5 访问控制访问控制C#
8、中最常用的访问修饰符及其意义中最常用的访问修饰符及其意义:public(公有):访问不受限制,可以被任何其他类访问private(私有):访问只限于含该成员的类,即只有该类的其他成员能访问protected(保护):访问只限于含该成员的类、及该类的派生类 如果声明成员没有使用任何访问修饰符,则该成员被认为是私有的(private)。如果成员被声明为private或protected,则不允许在类定义外使用点运算符访问。章节目录章节目录上一页上一页下一页下一页7.2 属性属性 7.2.1 声明属性声明属性 在类定义中声明属性的语法格式为:访问修饰符访问修饰符 类型类型 属性名属性名 get ge
9、t set set 章节目录章节目录上一页上一页下一页下一页class Student /类名为Student private string name;/声明字段 public string Name /对应name的属性 get return name;set name=value;章节目录章节目录上一页上一页下一页下一页7.2.2.声明只读或只写属性声明只读或只写属性 在属性声明中,如果只有get访问器,则该属性为只读属性。例如:public string Sex get return sex;章节目录章节目录上一页上一页下一页下一页7.2.3 使用属性使用属性 属性成员的使用就如同公有数
10、据成员的使用一样。可以为可写的属性赋值,可以用可读的属性为其他变量赋值。例:Student s1=new Student();/用属性设置修改数据成员值 s1.ID=2005003;s1.Name=李四;s1.Sex=“男”;/用属性读取数据成员值为其他变量赋值 sting ssex=s1.Sex;章节目录章节目录上一页上一页下一页下一页7.3 方法方法 方法是把一些相关的语句组织在一起,用于解决某一特定问题的语句块。方法必须放在类定义中。方法同样遵循先声明后使用的规则。C#语言中的方法相当于其他编程语言(如VB.NET)中的通用过程(Sub过程)或函数过程(Function过程)。C#中的方
11、法必须放在类定义中声明,也就是说,方法必须是某一个类的方法。章节目录章节目录上一页上一页下一页下一页7.3.1 声明与调用方法声明与调用方法 方法的使用分声明与调用两个环节。1.声明方法 声明方法最常用的语法格式为:访问修饰符 返回类型 方法名(参数列表)方法的访问修饰符通常是public,以保证在类定义外部能够调用该方法。方法的返回类型用于指定由该方法计算和返回的值的类型,可以是任何值类型或引用类型数据,如,int、string及前面定义的Student类。如果方法不返回一个值,则它的返回类型为void。章节目录章节目录上一页上一页下一页下一页 方法名是一个合法的C#标识符。参数列表在一对圆
12、括号中,指定调用该方法时需要使用的参数个数、各个参数的类型,参数之间以逗号分隔。实现特定功能的语句块放在一对大括号中,叫方法体,“”表示方法体的开始,“”表示方法体的结束。如果方法有返回值,则方法体中必须包含一个return语句,以指定返回值,其类型必须和方法的返回类型相同。如果方法无返回值,在方法体中可以不包含return语句,或包含一个不指定任何值的return语句。章节目录章节目录上一页上一页下一页下一页 2.调用方法 从方法被调用的位置,可以分为在方法声明的类定义中调用该方法和在方法声明的类定义外部调用方法。在方法声明的类定义中调用该方法的语法格式为:方法名方法名(参数列表参数列表)在
13、方法声明的类定义中调用该方法,实际上是由类定义内部的其他方法成员调用该方法。在方法声明的类定义外部调用该方法实际上是通过类声明的对象调用该方法,其格式为:对象名对象名.方法名方法名(参数列表参数列表)章节目录章节目录上一页上一页下一页下一页7.3.2 参数传递参数传递 在方法的声明与调用中,经常涉及方法参数,在方法声明中使用的参数叫形式参数(形参),在调用方法中使用的参数叫实际参数(实参)。在调用方法时,参数传递就是将实参传递给形参的过程。例如,某类定义中声明方法时的形参如下:public int IntMax(int a,int b)则声明对象classmax后调用方法时的实参如下:clas
14、smax.IntMax(x,y)章节目录章节目录上一页上一页下一页下一页 1.按值传递 参数按值的方式传递是指当把实参传递给形参时,是把实参的值复制(拷贝)给形参,实参和形参使用的是两个不同内存中的值,所以这种参数传递方式的特点是形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。2.按引用传递 按引用传递是指实参传递给形参时,不是将实参的值复制给形参,而是将实参的引用传递给形参,实参与形参使用的是一个内存中的值。这种参数传递方式的特点是形参的值发生改变时,同时也改变实参的值。章节目录章节目录上一页上一页下一页下一页 基本类型参数按引用传递时,实参与形参前均须使用关键字ref。例如
15、Swap方法代码如下:public void Swap(ref string s1,ref string s2)string s3=s1;s1=s2;s2=s3;则调用该方法的语句代码如下:Swap(ref ss1,ref ss2);/在实参中增加ref关键字 类对象参数总是按引用传递的,所以类对象参数传递不需要使用ref关键字。章节目录章节目录上一页上一页下一页下一页7.3.3 重载方法重载方法 方法重载是声明两个以上的同名方法,实现对不同数据类型的相同处理。方法重载有两点要求:重载的方法名称必须相同;重载的方法,其形参个数或类型必须不同,否则将出现“已经定义了一个具有相同类型参数的方法成员
16、”的编译错误。例如能同时处理整型与浮点型数据的重载方法:public void Swap(ref int a,ref int b)public void Swap(ref float a,ref float b)章节目录章节目录上一页上一页下一页下一页7.4 构造函数构造函数 构造函数是一种特殊的方法成员,构造函数的主要作用是在创建对象(声明对象)时初始化对象。一个类定义必须且至少有一个构造函数,如果定义类时,没有声明构造函数,系统会提供一个默认的构造函数,如果声明了构造函数,系统将不再提供默认构造函数。章节目录章节目录上一页上一页下一页下一页7.4.1 声明构造函数声明构造函数 声明构造函数
17、与声明普通方法相比,有两个特别要求,一是构造函数不允许有返回类型包括void类型,二是构造函数的名称必须与类名相同。所以构造函数往往需要使用形参,例如创建一个学生类对象时,需要给出学生的学号、姓名、性别及年龄等,所以学生类构造函数可以声明如下:public Student(string ID,string nname,string ssex,int aage)id=ID;name=nname;sex=ssex;age=aage;章节目录章节目录上一页上一页下一页下一页 由于声明了上述带参数的构造函数,所以系统不再提供默认构造函数,这样在创建对象时,必须按照声明的构造函数的参数要求给出实际参数,
18、否则将产生编译错误,例如:Student s1=new Student(“2005001”,“张三”,“女”,21);由上述创建对象的语句可知,new关键字后面实际是对构造函数的调用。章节目录章节目录上一页上一页下一页下一页7.4.2 重载构造函数重载构造函数 例如为学生类重载一个只初始化姓名的构造函数,代码如下:public Student(string nname)name=nname;如果在声明了带参数的构造函数后,还想保留默认构造函数,则必须显式声明一个默认构造函数。以Student类为例,声明默认构造函数如下:public Student()/显式声明默认构造函数 章节目录章节目录上
19、一页上一页下一页下一页7.5 静态成员静态成员 类可以具有静态成员,例如静态字段、静态方法等。静态成员与非静态成员的不同在于,静态成员属于类,而非静态成员则总是与特定的实例(对象)相联系。声明静态成员需要使用static修饰符。章节目录章节目录上一页上一页下一页下一页7.5.1 静态数据成员静态数据成员 静态数据成员不属于任何一个特定的对象,而是属于类,或者说属于全体对象,是被全体对象共享的数据。7.5.2 静态方法静态方法 静态方法同样使用修饰符static声明,静态方法属于类,只能使用类调用,不能使用对象调用。静态方法与非静态方法一样可以重载。章节目录章节目录上一页上一页下一页下一页7.5.3 C#中的常用类型转换静态方法中的常用类型转换静态方法 在C#的System命名空间中,有一个Convert(转换)类,该类提供了由字符串类型转换为相应其他基本数据类型的一系列静态方法。类型转换方法最常用的调用格式之一是:Convert.静态方法名静态方法名(字符串类型数据字符串类型数据)1.Convert.ToInt32方法方法 2.Convert.ToSingle方法方法 3.Convert.ToChar方法方法 4.Convert.ToBoolean方法方法 章节目录章节目录上一页上一页下一页下一页 总结总结作业作业