当前位置:首页 > Windows程序 > 正文

c#面向对象 基础知识(转)

2021-03-25 Windows程序

OOP技术按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。这种编程方法提供了非常强大的多样性,大大增加了代码的重用机会,增加了程序开发的速度;同时降低了维护负担,将具备独立性特制的程序代码包装起来,修改部分程序代码时不至于会影响到程序的其他部分。

1.  对象

什么是对象?实际上,现实世界就是由各种对象组成的,如人、汽车、动物、植物等。复杂的对象可以由简单的对象组成。对象都具有各自的属性,如形状、颜色、重量等;对外界都呈现出各自的行为,如人可以走路、说话、唱歌;汽车可以启动、加速、减速、刹车、停止等。

在OOP中,对象就是变量和相关的方法的集合。其中变量表明对象的属性,方法表明对象所具有的行为。一个对象的变量构成了这个对象的核心,包围在它外面的方法使这个对象和其他对象分离开来。例如:我们可以把汽车抽象为一个对象,用变量来表示它当前的状态,如速度、油量、型号、所处的位置等,它的行为则为上面提到的加速、刹车、换档等。操作汽车时。不用去考虑汽车内部各个零件如何运作的细节,而只需根据汽车可能的行为使用相应的方法即可。实际上,面向对象的程序设计实现了对象的封装,使我们不必关心对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏。有利于程序的可移植性和安全性,同时也利于对复杂对象的管理。

简单地说,对象非常类似于本书前面讨论的结构类型。略为复杂的对象可能不包含任何数据,而是只包含函数,表示一个过程。

2.类

在研究对象时主要考虑对象的属性和行为,有些不同的对象会呈现相同或相似的属性和行为,如轿车、卡车、面包车。通常将属性及行为相同或相似对象归为一类。类可以看成是对象的抽象,代表了此类对象所具有的共同属性和行为。典型的类是“人类”,表明人的共同性质。比如我们可以定义一个汽车类来描述所有汽车的共性。通过类定义人们可以实现代码的复用。我们不用去描述每一个对象(如某辆汽车),而是通过创建类(如汽车类)的一个实例来创建该类的一个对象,这样大大碱化了软件的设计。

类是对一组具有相同特征的对象的抽象描述,所有这些对象都是这个类的实例。在C#中,类是一种数据类型,而对象是该类型的变量,变量名即是某个具体对象的标示名。

3.属性和字段 

通过属性和字段可以访问对象中包含的数据。对象数据可以区分不同的对象,因为同一个类的不同对象可能在属性和字段中存储了不同的值。包含在对象中的不间数据统称为对象的状态。

假定一个对象类表示一杯咖啡,叫做CupOfCoffee。在实例化这个类(即创建这个类的对象)时,必须提供对于类有意义的状态。此时可以使用属性和字段,让代码能通过该对象来设置要使用的咖啡品牌,咖啡中是否加牛奶或方糖,咖啡是否即溶等。给定的咖啡对象就有一个指定的状态,例如“Columbian filter coffee with milk and two sugars”。

可以把信息存储在字段和属性中,作为string变量、int变量等。但是,属性与字段是不同的,属性不能直接访问数据。一般情况下,在访问状态时最好提供属性,而不是字段,因为这样可以更好地控制整个过程,而使用它们的语法是相同的。

对属性的读写访问也可以由对象来明确定义。某些属性是只读的,只能查看它们的值,而不能改变仑们(至少不能直接改变)。还可以有只写的属性,其操作方式类似。

除了对属性的读写访问外,还可以为字段和属性指定另—种访问许可,这种可访问性确定了什么代码可以访问这些成员,它们是可用于所有的代码(公共),还是只能用于类中的代码(私有),或者更复杂的模式。常见的情况是把字段设置为私有,通过公共属性访问它们。

例如,CupOfCoffee类,可以定义5个成员:Type、isInstant、Milk、Sugar、Description等。

4.方法

对象的所有行为都可以用方法来描述,在C#中,方法就是对象中的函数。

方法用于访问对象的功能,与字段和属性—样:方法可以是公共的或私有的,按照需要限制外部代码的访问。它们常常使用对象状态——访问私有成员。例如,CupOfCoffee类定义了一个方法AddSugar()来增加方糖数属性。

实际上,C#中的所有东西都是对象。控制台应用程序中的Main()函数就是类的一个方法。前面介绍的每个变量类型都是一个类。前面使用的每个命令都是一个属性或方法。句点字符“.”把对象实例名和属性或方法名分隔开来。

5.对象的生命周期

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67242.html