c程序设计基础补充第5章_第1页
c程序设计基础补充第5章_第2页
c程序设计基础补充第5章_第3页
c程序设计基础补充第5章_第4页
c程序设计基础补充第5章_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 类杭州电子科技大学主要内容理解面向对象 面向对象的概念面向对象程序设计理解面向对象(Object Oriented)为什么要使用面向对象的编程方法?工业生产:手工作坊 大规模机器生产编程方法:面向过程 面向对象传统开发方法存在的问题: 重用性差、可维护性差、不能真正满足用户需要使用面向对象方法的好处: 提高生产力,降低编写程序的难度,分工合作变得简单三层数据库系统展示层中间层数据层对象的属性对象的主要属性包括状态和行为 。1. 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息。2. 行为是对象的第二个属性,有时候又称为对象的操作,主要表示对象的动态属性。面向对象程序设计类

2、的声明类的成员类的构造函数和析构函数类的声明创建对象声明类声明类类是 C# 中功能最为强大的数据类型。类是使用 class 关键字来定义的,语法如下:类的修饰符 class 类名 继承方式 基类名 /字段、属性、方法、事件等声明类类的修饰符public不限制对该类的访问private访问范围限定于它所属的类protected访问范围限定于它所属的类或从该类派生的类abstract抽象类,不允许建立类的实例,只能用作基类sealed密封类,不允许被继承创建对象 通过使用 new 关键字,后跟类的名称,可以创建相应的对象,如下所示: Customer object1 = new Customer(

3、);字段属性方法索引器事件类成员字段 在类块中声明字段的方式如下: 字段的访问级别 字段的类型 字段的名称 “字段”是包含在类或结构中的对象或值。字段使类和结构可以封装数据。字段的修饰符字段的修饰符publicprivateprotectedstaticreadonlyinternal属性充分体现了对象的封装性:不直接操作类的数据内容,而是通过访问器进行访问,即借助于get和set对属性的值进行读写。设计原则:属性封装了对字段的操作。把要访问的字段设为private,通过属性中的get和set操作对字段进行设置或访问。属性的访问器get访问器 通过return来读取属性的值。set访问器 se

4、t方法有一个隐含的参数value, 通过value来设置属性的值。对象.属性 值(调用set)变量 对象.属性(调用get)属性举例class Person private string name; / the name field public string Name / the Name property get return name; set name = value; Person p1 = new Person(); p1.Name = Joe; System.Console.Write(p1.Name); 调用set访问器调用get访问器方法方法声明方法参数方法重载方法声明 方法

5、及方法的声明 Public bool Compare( int num,int den ) If (numden) return true; Else return false;内部逻辑处理返回结果参数输入方法声明(续) 方法及方法的声明 方法修饰符 返回类型 成员名(形参表) 方法体 方法修饰符:pulbic、protected、private、static、virtual、abstract、sealed、internal、entern、override方法参数 方法的4种参数: 值参数:声明时不带任何修饰符 引用参数:用ref修饰符声明 输出参数:用out修饰符声明 参数数组:用param

6、s修饰符声明方法参数 值类型变量变量副本值类型参数传递该变量的引用地址,以便方法能索引到变量变量副本引用类型参数传值 传值(在方法内部改变,不影响外部):注意点:传值相当于变量拷贝。传引用 传引用(在方法内部改变,会影响外部):注意点:使用ref关键字;指向同一个对象或值; 必须初始化参数。传输出参数 传输出参数(与ref类似,但使用前不必先初始化)注意点:可以返回多个值;参数不被初始化;在方法 返回前,必须对out参数进行赋值。 参数数组 用params修饰符声明的参数是参数数组。 static long addAll(params int args) long result = 0; fo

7、r (int i = 0; i args.Length; i+) result += argsi; return result; static void Main() long x = addAll(10, 20, 30); Console.WriteLine(The result is: 0,x); int a = new int 11, 22, 33 ; x = addAll(a); Console.WriteLine(The result is: 0, x); 用参数数组作为行参方法调用参数数组(续) 注意点: params关键字用来声明可变长度的参数列表。 方法声明中只能包含一个par

8、ams参数。 不能将params修饰符与ref和out修饰符组合起来 用。 如果形参表包括一个参数数组,则该参数数组 必须位于该列表的最后。 方法重载方法名称相同,参数类型不同或者参数个数不同。void f() void f(int a) void f(int a, int b) int f(string s) int f(int x) void f(string s) void f(params string s) 索引器它使对象能够用与数组相同的方式进行索引。索引器修饰符 类型 this 形参表 访问器声明 索引器修饰符: public、private、protected、internal

9、、virtual、 sealed、abstract、override、extern索引器(续)private string name;public string Nameget return name; set name = value;private string s = new string10;public string thisint nIndexget return snIndex; set snIndex = value; 属性 索引器构造函数析构函数类的构造函数和析构函数构造函数构造函数的名字必须与类同名构造函数没有返回类型,它可以带参数,也可以不带参数声明类对象时,系统自动调用构造函数,构造函数不能被显式调用构造函数(续)class A/字段;public A() /类A的构造函数/方法;构造函数的声明构造函数(续)构造函数可以重载,从而提供初始化类对象的不同方法若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空构造函数(续)class A/字段;public A() /类A的构造函数public A(int a) /构造函数重载public A(int a, double b) /构造函数重载/方法;析构函数析构函数的名字与类同名,并在类名前加上一个波浪号()构造函数没有返回类型, 不带任何参数删除对象时,系统自动调用析构函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论