主流软件开发方法-面向对象入门.ppt





《主流软件开发方法-面向对象入门.ppt》由会员分享,可在线阅读,更多相关《主流软件开发方法-面向对象入门.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章主流软件开发方法面向对象入门 类的定义和类的成员 对象的创建和使用 分部类 结构和类 命名空间4.1 C#中的类o面向对象程序设计是目前主流的编程方法,C#是一门纯粹的面向对象的语言,面向对象编程的基础是类和对象,类是面向对象程序设计思想的灵魂,下面我们学习类的概念。4.1.1 类的概念o日常生活中,类是对具有相同特征的一类事物的抽象描述,比如水果就是一个类,它是对苹果、梨等所有具体水果的抽象描述,而这个类中所包含的具体的苹果、梨等个体就是对象。不同的类具有不同的特征,比如人类、水果类和电脑类分别是不同的类等。4.1.2 类的定义o类的定义使用class关键字,其语法如下:访问修饰符 c
2、lass 类名/类的主体访问修饰符o在C#中访问修饰符有4种,它们是:public:对类的访问不受限制,就像公共图书馆一样,谁都可以进去看书;protectecd:对类的访问仅限于包含类或从包含类派生的类型,就像单位的图书馆,只有该单位或其子公司的人才能进去;private:访问仅限于包含类型,如私人图书馆一样不对外开放;类名采用帕斯卡命名法,即首字母大写,通常命名类采用完整的英文单词,如Person类,Student类。提示 internal:访问仅限于当前项目,如单位的图书馆除本单位的人能访问外,外单位排到本单位协助工作的人也能访问。【范例4-1】定义一个电话类。class Phone p
3、ublic string brand;/定义公有的成员表示电话的品牌 public string phoneNumber;/定义公有的成员表示电话的电话号码 4.1.3 类的成员o定义在类名后大括号中的元素都是类的成员。类的主要成员包括描述状态的数据成员和描述操作的函数成员。比如在小节的Phone类中,电话有机主、电话号码等属性,这些属性就是Phone类的数据成员,而电话还有接电话和拨电话等功能,这些功能则属于函数成员。1.数据成员 o常量成员名称的第一个字母一般大写,也经常使用全部大写、多个字之间用下划线连接的常量名。提示 类的数据成员包括:字段(或者称域)和常量。字段就是在类内定义的变量,
4、用来存储描述类的特征的值,如电话的颜色、所属的主人,电话号码等。常量是类的常量成员。声明字段成员变量的语法如下:访问修饰符 数据类型 成员变量名2.属性成员o类的函数成员包括:属性、方法、索引器、事件、运算符、构造函数和析构函数。下面我们来介绍一下属性成员。从前面学习可知,其他类可以访问某个类中具有public权限的成员变量,将变量声明为public类型,不利于数据的安全,破坏了类的封装特性。通过属性成员可以对类中私有成员变量进行读取和赋值操作。属性成员中用get访问器和set访问器来对类中私有成员变量进行读写操作的。定义属性方法格式如下:访问修饰符 数据类型 属性名 get /get访问器
5、set /set访问器 3.方法o方法用来描述对象的行为,对类的数据成员的操作都封装在类的方法中。方法的主要功能便是数据操作,没有方法的程序是没有意义的,就像电话如果不具有接打电话等功能,是没有什么作用的。方法的声明格式如下:访问修饰符 返回值数据类型 方法名(参数列表)/方法体4.静态成员o类的成员要么是静态的,要么是非静态的。前面介绍的类的成员都是非静态的,使用的必须实例化。如果将类中的某个成员声明为static,则该成员是静态成员,非静态成员也叫实例成员。类的静态成员可以直接使用,不必产生类的实例。无论这个类创建了多少个实例,静态成员为类的所有实例所共享。如任何电话都可以拨打急救电话,拨
6、打急救电话功能可以定义为静态的.【范例4-2】定义一个有多种成员类型的类1 private string _owner;/定义一个私有字段表示电话机主2 public string address;/定义一个公有字段表示电话地址3 private static string _phoneNumber;/定义一个静态字段成员用于表示电话号码 4 /属性成员5 public string Owner /定义一个属性成员,用于设置和获取私有字段_owner的值6 7 get return _owner;/获取私有字段_owner的值8 set _owner=value;/设置和私有字段_owner的
7、值value是关键字9 10 /无参数方法成员,表示电话具有拨打电话功能11 public void Dial()12 13 Console.WriteLine(“您正在拨打电话!”);14 15 /有参数方法成员,表示电话这种拨打一个具体的电话号码16 public void Dial(string number)17 18 Console.WriteLine(“您正在拨打:”+number);19 20 /静态属性成员,用于设置和获取静态字段成员_phoneNumber的值21 public static string PhoneNumber22 23 get return _phoneN
8、umber;24 set _phoneNumber=value;25 26 /添加静态方法EmergencyCall;27 public static void EmergencyCall()28 29 Console.WriteLine(“您正在拨打急救电话119!”);30 在Program.cs的Main方法中输入以下代码以测试类的成员。oPhone.EmergencyCall();/静态方法可直接使用 o Console.WriteLine(Phone.emergency_Call);o Phone objPhone=new Phone();/创建对象o objPhone.PhoneN
9、umber通过set访问器私有字段phoneNumber赋值o Console.WriteLine(电话号码是:+objPhone.PhoneNumber);/通过get访问器得到私有字段phoneNumber的值o o objPhone.Dial();o使用非静态成员o Console.Read();第4章主流软件开发方法面向对象入门 类的定义和类的成员 对象的创建和使用 构造函数和析构函数 分部类 结构和类 命名空间4.2 C#中的对象o类和对象是密不可分的,有类就有对象,有对象就有类。客观世界是由多种对象组成的,用面向对象的思想来编写程序,就要把一切都看为对象。4.2.1 对象的概念o类
10、是相同特征的一类事物的抽象,而对象是类的实例。类和对象有着本质的区别:类是从对象中抽取出来的一类对象的描述,对象是真实的个体,是一个具体的事物,从抽象到具体即是将类的属性和行为实例化的过程。类与对象的关系可以比喻为车型设计和具体的车:类就像车型设计一样说明了车所应该具备的所有属性和功能,但是车型设计并不是车,你不能发动和驾驶车型;对象就像根据车型设计制造出的车,它们都具备车型设计所描述的属性和功能,车是能发动和驾驶的。4.2.2 对象的创建和使用o类是抽象的,要使用类中非静态的成员,就必须实例化类,即创建类的对象。如何创建对象并使用它呢?使用new运算符来创建类的对象!对象的创建必须以类为基础
11、,声明一个对象就是类的实例化的过程,C#使用new运算符来创建对象,格式如下:类名 对象名=new 类名(参数列表);oPhone objPhone=new Phone();对象的使用是通过对对象中的成员的访问来实现的,访问对象中的成员的语法如下:对象名.成员名如:objPhone.address=“办公楼4.2.3 匿名类型和对象初始化器o匿名类型和对象初始化器是C#3.0新增加的功能,用来简化对象的初始值设置的。使用对象初始化,创建Phone并对其属性成员Owner赋值可以这样写:Phone objPhone=new Phone()Owner=“办公楼3204”;例如:定义类Point,有
12、两个自动属性X,Y表示点的坐标。o1 public class Point2 3 public int X get;set;4 public int Y get;set;5 使用对象初始化,可这样创建对象并对属性赋值:Point p=new Point()X=0,Y=0;o使用匿名类型可以定义内嵌的类型,不需要显式地定义一个类型。假设没有定义Phone类,却要使用一个Phone对象(即类型是匿名的),可以使用对象初始化语法,但不用指定类型名:var p=new X=0,Y=2;在VS2008中,仍然可以使用智能感应功能得到这个匿名类型的属性列表。4.2.4 构造函数和析构函数o对象和客观世界中
13、的事物一样,从创建到消亡都有一个生命周期,对象的创建和销毁是通过类的构造函数和析构函数来完成的。1.构造函数oC#通过new创建对象的过程实际就是调用类的构造函数的过程,创建对象时,必须调用构造函数,构造函数是用于执行类的实例的初始化。每个类都有构造函数,如果没有定义,系统会提供一个默认的构造函数,默认的构造函数一般不执行什么操作。在访问一个类的时候,系统将最先执行构造函数中的语句。构造函数是类的特殊方法成员,名称和类名相同,主要用来完成初始化的。2.析构函数o析构函数用于在对象销毁前释放被占用的系统资源。析构函数的名字与类名相同,只是在前面加了一个符号“”,析构函数不接受任何参数,也不返回任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 主流 软件 开发 方法 面向 对象 入门

限制150内