第7章整理ppt.ppt
《第7章整理ppt.ppt》由会员分享,可在线阅读,更多相关《第7章整理ppt.ppt(54页珍藏版)》请在三一文库上搜索。
1、第七章,类,目标,类的声明 类的成员 类的构造函数和析构函数 方法 字段和属性 索性器,体验,编写一个类,用于计算圆、长方形、梯形的面积。 程序运行时创建一个计算面积的类的对象,通过调用对象的方法,实现面积的计算。 从现在开始,所有的程序都是通过面向对象的思想编写成的。,类,类是一组具有相同数据结构和相同操作的对象的集合。类是对一系列具有相同性质的对象的抽象,是对对象共同特征的描述。,语法:,其他修饰符访问修饰符 class , / 类的主体 ,示例: class Employee / 类的主体 ,/ 成员变量 / 成员方法,语法:,成员变量,访问修饰符,数据类型,成员变量;,private,
2、protected,internal,public,_name,status,.,userName,int,char,.,bool, class Employee private string _name; private char _gender; private int _sex; private uint _salary; ,访问成员变量,步骤 1:创建一个类的对象,Employee objEmployee = new Employee();,步骤 2:使用点号访问成员变量,objEmployee._name = “张三“; objEmployee._name = M;,访问修饰符 2-
3、1,Teacher 类,private 成员,protected 成员,public 成员,internal 成员,Student 类,不可访问,不可访问,可以访问,只有 Student 类在 Teacher 类都在同一程序集中,才可访问internal成员,访问修饰符 2-2,其他类修饰词,字段和属性,保存类的实例的各种数据信息,C#提供了两种方法:字段和属性。 通过属性实现了良好的数据封装和数据隐藏,字段,字段表示类或结构中的对象或值 字段使类和结构可以封装数据 例: public class Employee private string _name; /字段 private uint
4、_age; /字段 ,字段设计原则,不要提供公共的或受保护的实例字段 对不会更改的常量使用常量字段/const 对预定义对象实例使用公共静态只读字段 不要将可变类型的实例指定给只读字段,属性2-1,属性是对现实世界中实体特征的抽象,它提供了对类或对象性质的访问。 C#中的属性更充分地体现了对象的封装性:不直接操作类的数据内容,而是通过访问器进行访问,它借助于get和set对属性的值进行读写。,属性2-2,属性结合了字段和方法的多个方面 例: public class Employee private string _name; /字段 private uint _age; /字段 public
5、 string Name /属性,可读写 set _name = value; /value关键字,传递所赋值 get return _name; public uint Age /属性,只写 set _age = value; ,属性特征,属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。 get属性访问器用于返回属性值,而set访问器用于分配新值。这些访问器可以有不同的访问级别。 value关键字用于定义由set索引器分配的值。 不实现set方法的属性是只读的,同样不实现get方法的属性是只写的。 除了使用了abstract修饰符的抽象属性,每个访问器的执行体中只有分号“;
6、”,其它所有属性的get访问器都通过return来读取属性的值,set访问器都通过value来设置属性的值。,类的继承声明,类B继承类A: class A class B: A /冒号表示继承 如果还有接口IFace1,IFace2需要实现: class B:A,IFace1,IFace2,构造函数 2-1,构造函数是类的一种特殊方法,每次创建类的实例都会调用它,访问修饰符,(), / 构造函数的主体 ,语法:,public class Employee / 默认构造函数 Employee() _qualification = “研究生“; ,示例:,static void Main(stri
7、ng args) / 调用默认构造函数 Employee objEmployee = new Employee(); Console.WriteLine(“资格= “ + objEmployee._qualification); Console.WriteLine(“薪水= “ + objEmployee._salary); ,构造函数 2-2,class Employee ,private string _name; private char _gender; private string _qualification; private uint _salary;,/ 默认构造函数 priv
8、ate Employee() _qualification = “研究生“; ,参数化构造函数 2-1,访问修饰符, (), / 构造函数的主体 ,语法:,(参数列表), / 参数化构造函数 Employee(string strQualification) _qualification = strQualification; ,示例:,构造函数3-1,是类中的特殊类型的方法 是每次创建对象时要调用的函数 通常用于初始化 与类同名/? 不返回值,构造函数3-2,using System; public class DaysInYear private int days; public Days
9、InYear() days = 365; static void Main(String args) DaysInYear newDaysInYear=new DaysInYear(); Console.WriteLine(newDaysInYear.days); ,无构造函数输出 的结果是0,有构造函数输出 结果是365,带参数的构造函数3-3, public class DaysInYear private int days; public DaysInYear() days = 365; public DaysInYear(int day) days = day; public Days
10、InYear(String dayOne) days =Convert.ToInt32(dayOne); public void setDay(int newDays) days = newDays; ,传递不同个数的参数 传递个数相同但类型不同的参数,析构函数,是用于执行清除操作的特殊方法,(), / 析构函数的主体 ,语法:, Employee() ,示例:,析构函数特征,不能在结构中定义析构函数,只能对类定义析构函数。 一个类只能有一个析构函数。 无法继承或重载析构函数。 无法调用析构函数,它们是被系统调用的。 析构函数既没有修饰符,也没有参数。,方法,接听,响铃,挂断,PickUp()
11、 . /用于传送和接收信号的代码 ,Ring() . /用于显示主叫号码的代码 ,Hang() . /用于结束会话的代码 ,对象的行为,声明方法 2-1,语法,访问修饰符(可选),默认情况下为 private,访问修饰符 返回类型 (参数列表) / 方法主体 ,如果不需要返回任何值,方法可能返回 void 数据类型,声明方法 2-2, class Point int x; int y; void Assign() System.Console.WriteLine(“输入点的值“); x = int.Parse(System.Console.ReadLine(); y = int.Parse(S
12、ystem.Console.ReadLine(); ,方法 Assign() 的定义,不返回任何值 (void) 不接收任何值 (Assign(),Assign( ) 方法,调用方法 2-1,对象名.方法名(参数列表);,实例,类中的方法,点号,语法,调用方法 2-2,return 表达式;,return 语句, Number num = new Number(); int result = num.Sum(10,31); public class Number public int Sum(int x,int y) int s = x + y; return s; ,语法,方法的参数,C#中
13、方法的参数有四种类型: 值参数,不含任何修饰符。 引用型参数,以ref 修饰符声明。 输出参数,以out 修饰符声明。 数组型参数,以params 修饰符声明。,值参数,当利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并且将此拷贝传递给该方法。被调用的方法不会修改内存中实参的值,所以使用值参数时,可以保证实际值是安全的。 参见教材中示例7.7,引用型参数,引用型参数和值参不同,引用型参数并不会开辟新的内存区域。 当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递给方法。 引用型参数一般是两种情况下存在 方法的形参本身就是引用类型。 参见示例7.8 通过声明ref关键
14、字使参数按引用传递 参见示例7.9,using System; class RefValueParamSample static void Swap(ref int x, ref int y) int temp = x; x = y; y = temp; static void Main() int i = 1, j = 2; Swap(ref i, ref j); Console.WriteLine(“i = 0, j = 1“, i, j); ,输出参数,与引用型参数类似,输出型参数也不开辟新的内存区域。 与引用型参数的差别在于,调用方法前无需对变量进行初始化。 输出型参数用于传递方法返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 ppt
链接地址:https://www.31doc.com/p-3131786.html