- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 程序的设计 18 面向对象编程
C 程序设计 18 面向对象编程
什么是面向对象编程
面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法、新思想。过去的面向过程编程常常会导致所有的代码都包含在几个模块中,使程序难以阅读,难以维护。在做一些程序修改时常常牵一动百,使以后的开发和维护不易进行。
而OOP技术经常要使用许多代码模块,每个模块都只提供特定的功能,并且彼此独立,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。模块化的设计结构经常可以简化任务。
在面向对象中,算法与数据结构被看做是一个整体,称作类,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以程序可以被这样定义:
对象=(算法+数据结构)
程序=(对象+对象+…)
因此程序就是许多对象在计算机中相继表现自己,而对象则是一个个程序实体。
类是对象概念在面向对象编程语言中的反映,是相同对象的集合。类描述了一系列在概念上有相同含义的对象,为这些对象统一定义了编程语言上的属性和方法。
类是C#中功能最为强大的数据类型。类定义了数据类型的数据和行为。在C#中,类的声明格式如下:
类的属性集类的修饰符关键字class类名继承方式基类名
除class关键字和类名外,剩余的都是可选项。下面以汽车为例声明一个类,代码如下:
public class Car public是类的修饰符,下面介绍几个常用的修饰符。
1new:仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。
2public:表示不限制对该类的访问。
3protected:表示只能从其所在类和所在类的子类进行访问。
4internal:只有其所在类才能访问。
5private:只有.NET中的应用程序或库才能访问。
6abstract:抽象类,不允许建立类的实例。
7sealed:密封类,不允许被继承。
对象
对象是类的实例,是OOP应用程序的一个组成部件。这个组成部件封装了部分应用程序,这部分应用程序可以是一个过程、一些数据或一些更抽象的实体。
对象包含变量成员和函数类型。它所包含的变量组成了存储在对象中的数据,其中包含的方法可以具有访问对象的功能。复杂的对象可以不包含任何数据,只包含方法,表示一个过程。
在C#中和.NET Framework中的所有类型都是对象。变量类型是一个类,变量也是一个对象。
用属性和字段可以访问对象中包含的数据。对象数据用来区分不同的对象,同一个类的不同对象可能在属性和字段中存储了不同的值。包含在对象中的不同数据统称为对象的状态。字段和属性都可以输入,通常把信息存储在字段和属性中。属性和字段是不同的,属性不能直接访问数据,字段可以直接访问数据。在属性中可以添加对数据访问的限制,如有一个int型属性,可以限制它只能存储1~5的数字,但如果用字段就可以存储任何int型的数值。
通常在访问状态时提供属性,而不是字段,因为属性可以更好地控制访问过程和读写权限。除此之外,属性的可访问性确定了什么代码可以访问这些成员,可以声明为公有、私有或者其他更为复杂的方式。
下面的代码实现了访问Car类的对象和对象数据状态:
public class Car
{
publicint number;
publicstring color;
private string _brand;
public Car()
{
}
public string brand
{
get
{
return _brand;
}
set
{
_brand=value;
}
}
}
下面代码在一个方法中实例化类对象并设置和访问数据状态:
private void button2_Click(object sender,EventArgs e)
{
string pa;
Car c=new Car();
c.brand=奔驰;
c.color=黑色;
pa=c.brand;
}
构造函数和析构函数
构造函数和析构函数是类中比较特殊的两种成员函数,主要用来对对象进行初始化和回收对象资源。一般来说,对象的生命周期是从构造函数开始,以析构函数结束。如果一个类含有构造函数,在实例化该类的对象时就会调用构造函数;如果含有析构函数则会在销毁对象时调用它。构造函数的名字和类名相同。析构函数和构造函数的名字相同,但析构函数要在名字前加一个波浪号(~)。当推出含有该对象的成员时,析构函数将自动释放这个对象所占用的内存空间。
每个类都有构造函数,在访问一个类的方法、属性或任何其他东西之前,首先执行的语句应是与类相应的构造函数。即使没有声明它,编译器也会自动构造一系列的构造函数。构造函数不声明返回类型,而且一般都是public类型,如果是private
您可能关注的文档
- “眼球对眼球的权利”——对质权制度比较研究_民法论文_法律论文__5414.doc
- “铁屋子”或“家”的民族寓言——论中国电影的一个原型叙事结构及其变形_电视电影论文_艺术论文__4563.doc
- 《催醒术》——1909年发表的“狂人日记”_现当代文学论文_文学论文__264.doc
- 《春望》五种英译文的比较研究,英语翻译学论文-_3168【论文全集】.doc
- “整理国故运动”与国学研究的学科重建_国学论文_哲学论文__3348.doc
- 侦查程序的正当化是我国法治建设发展的需要,侦查论文-_182【论文大全】.doc
- 从文化视角研究《红楼梦》中委婉语的翻译,英语翻译学论文-_194【论文大全】.doc
- 中国左翼文学、京海派文学及其在当下的意义_现当代文学论文_文学论文__195.doc
- 信息技术与教育相整合的进程,教育管理论文.doc
- 大学语文课程建设的一些建议,语文教育论文-_577【论文大全】.doc
原创力文档


文档评论(0)