资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 类,主要内容:,3.1类和对象 3.2类 3.3构造函数和析构函数 3.4常量和字段 3.5类的属性 3.6类的方法 3.7索引器 3.8案例,【教学目标】,理解类和对象的基本概念 掌握声明类的方法 掌握声明、访问类的成员的方法 掌握重载方法、重载运算符的概念和使用方法 掌握声明、使用索引器的方法,3.1 类和对象,1.对象 客观世界中对象无处不在,人、汽车、房子、计算机等都是对象。 对象的属性描述了对象的状态,对象的行为描述了对象的功能。 2.类 类是对一组对象的抽象,它将这组对象具有的共同特征集中起来,说明这组对象的性质和功能。 类是所有具有共同特征的对象的抽象,是一个抽象的概念;而对象是一个类中某个具体的实体,称为类的实例(Instance)。类和实例的关系就是抽象和具体的关系,对象是程序执行过程中由所属的类动态生成的。,3.2 类,1.类的声明 类可以看作是一种可以由用户自定义的数据类型,而这种数据类型是抽象的数据类型。 在C#中使用关键字class声明类,声明类的一般格式为: 修饰符 class 类的名称 类的成员 ,【例3-1】声明一个Student类。 public class Student /声明Student类 public int intNo; public string name; public char ChrSex; public void setValue(int i,string s,char c) intNo=i; name=s; ChrSex=c; public void print() Console.WriteLine(“学号:0,姓名:1,性别:2,intNo,name,ChrSex); /类的声明结束,class Class1 static void Main(string args) Student zhangsan=new Student(); zhangsan.setValue(1,”张三”,M); zhangsan.print(); ,3.2 类,2. 类的修饰符 类的修饰符可以是下面修饰符之一或是它们的组合: new:仅允许在嵌套类声明中使用,表示所修饰的类会将继承下来的同名成员隐藏起来。 internal:内部类,默认情况下类的声明是内部的,即只有当前项目中的代码才能访问它。 pubic:公共类,表示对这个类的访问不受限制。 protected:受保护的类,表示只能从所在类和所在类派生的子类进行访问。 private:私有类,表示只能由该类访问。 abstract:抽象类,表示该类不能被实例化,只能被继承。 sealed:密封类,表示该类只能实例化,不能被继承。,3.2 类,3.类的成员 类的成员包括数据成员和函数成员。,3.2 类,4.类的实例 类的实例是通过关键字new创建的,创建后类的实例是一个引用类型的变量。 创建类的实例的一般格式为: 类名 实例名=new 类名(参数); 例如: Student 张三=new Student(); Person myTest=new Person(“LiFei,25,001); 5.类与结构体 类和结构体是 .NET Framework 中的常规类型系统的两种基本构造。,3.3 构造函数和析构函数,构造函数和析构函数是类中比较特殊的两个成员函数。 构造函数为对象分配空间,完成对象初始化的过程; 析构函数完成释放实例化对象所占的内存空间。 1.构造函数 构造函数名称通常与类名相同,大小写是一致的。 构造函数不声明返回值类型,也没有void修饰符,可以有参数,也可以没有参数。 构造函数通常都是public型的,如果声明为private类型,说明这个类不能被实例化,这适用于只含有静态成员的类。 构造函数的作用是完成类的初始化工作,在构造函数中不能对类的实例进行初始化以外的事情,也不要尝试显式的调用构造函数。,3.3 构造函数和析构函数,2.析构函数 析构函数用于释放类的实例,回收对象所占用的资源。 析构函数名称也与类的名称相同,但是在名称前加了运算符“”。 在一个类中只能有一个析构函数,在函数体中包含了销毁类的实例时需要执行的语句。 析构函数既没有修饰符也没有参数,所以它不能被重载,也不能被继承,并且析构函数时被自动调用的,也就是说析构函数不能被显示调用。,3.4 常量和字段,1.常量 在类中声明的常量属于这个类的常量成员。在这个类中,其它成员可以使用这个常量成员表示某个值。在类中声明常量成员时使用关键字const,例如: class MyClass public const int a = 1; public const double b = 2.0; ,3.4 常量和字段,2.字段 字段是与类或对象相关的变量。在类中声明字段可包括字段修饰符、数据类型、变量名称。其中字段修饰符可以使用new、public、protected、internal、private、static和readonly。其中static和readonly可以与其它修饰符组合使用。 例如: class MyClass public static int a=1,b=2,c=3; ,3.5 类的属性,类的属性成员是对实例特征的抽象。 1.声明类的属性成员 声明类的属性成员的一般格式为: class 类名 修饰符 数据类型 属性名 访问函数体 ,3.5 类的属性,2.属性的使用 属性的访问是通过访问器实现的。 属性访问器由两部分构成:get函数和set函数。 get函数是一个不带参数的方法,用于对属性值的读操作(访问字段),set函数带有简单值类型参数的方法,用于对属性值的写操作(修改字段)。 这两个访问函数的一般格式为: 修饰符 get 访问体 修饰符 set 访问体,3.5 类的属性,3.静态属性 使用static修饰符声明的属性属于静态属性。同其它静态成员一样,静态属性属于类,不属于某个具体的实例。,3.6类的方法,1.方法的声明 声明方法的一般格式为: 修饰符 返回值类型 方法名称(形参列表) 方法体 2.方法的参数类型 在C#中,方法的参数有4种类型,它们分别是:值参数、引用参数、输出参数和数组参数。,3.6类的方法,3.静态方法和实例方法 在声明方法时如果使用了static修饰符,则这个方法称为静态方法;如果没有使用static修饰符,该方法称为实例方法。 访问静态方法的格式为: 类名.静态方法名() 静态方法只能访问类中的静态成员。 实例方法对类的实例进行操作,可以访问类中的任何成员,访问实例方法的格式为: 实例名.实例方法名() 而且实例方法可以使用this访问实例,访问的格式为: this.实例方法名(),3.6 类的方法,4.方法的重载 在类中如果有两个或两个以上的方法名称相同,但是参数的个数或者参数的类型不同,这被称为方法的重载。 方法的重载不能通过返回值类型来区别,也不能通过类型相同只是变量名不同的参数来区别 5.运算符重载 运算符重载是指允许用户对已有运算符重新定义,按照自己的定义要求进行运算。 运算符重载的格式为: public static 返回值类型 operator 运算符(参数列表) 在运算符重载时,参数只能是值参数。,3.7 索引器,对于类中包含的数组型的对象,利用索引器可以通过对象的元素的下标访问对象的各个元素。 声明索引器的一般格式为: class 类名 修饰符 数据类型 this索引参数表 访问函数体 ,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号