ASP.开发大全第3章.面向对象设计基础

上传人:汽*** 文档编号:490384965 上传时间:2023-12-21 格式:DOC 页数:40 大小:274.02KB
返回 下载 相关 举报
ASP.开发大全第3章.面向对象设计基础_第1页
第1页 / 共40页
ASP.开发大全第3章.面向对象设计基础_第2页
第2页 / 共40页
ASP.开发大全第3章.面向对象设计基础_第3页
第3页 / 共40页
ASP.开发大全第3章.面向对象设计基础_第4页
第4页 / 共40页
ASP.开发大全第3章.面向对象设计基础_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《ASP.开发大全第3章.面向对象设计基础》由会员分享,可在线阅读,更多相关《ASP.开发大全第3章.面向对象设计基础(40页珍藏版)》请在金锄头文库上搜索。

1、第3章 面向对象设计基础第二章介绍了C#的基本语法,以及使用方法。C#同Java、C+一样是面向对象的编程语言,同时C#更强化了面向对象的概念。本章将介绍面向对象的基础知识并介绍使用C#编写面向对象的应用程序,在C#中,面向对象的开发能够给系统设计、编码、维护提供更多的便利。3.1 什么是面向对象面向对象是应用程序开发中一个非常重要的技巧和概念,面向对象并不是什么高深的技术也不是负责的学习体系,面向对象主要是一种设计的思路。使用面向对象进行应用程序开发能够非常好的将现实中的物体进行抽象,这样就在一定程度上丰富了应用程序的结构,不仅如此,面向对象还包括继承、多态等特性以便能够快速构架应用程序。3

2、.1.1 传统的面向过程 在传统应用程序开发领域(如C语言的开发),或者是早期的基于B/S领域的Web应用程序开发(如ASP)都使用的是传统的面向过程的开发语言。而C+/JAVA/C#等开发都是使用的面向对象的开发语言。面向对象的开发语言更接近人类理解自然的语言,对开发人员来说更加通俗易懂,同时也对“对象”进行了较好的抽象。面向过程的一段C语言代码如下所示。 main() sum(x,y); get(x,y); print(x); print(y); 上述代码截取了C语言中的一个代码段,从上述代码中可以看出,C语言中基本没有对象的概念。当执行一个主方法Main时,按照程序逻辑调用不同的函数,来

3、达到运算的目的。传统的面向过程的开发必须规定每一个步骤,或者明确每一种函数,并在程序运行中调用不同的函数来实现运算的目的。面向过程的思想决定了其没有派生、覆盖、继承等特性,所以每当创建一个新的“对象”时,就有可能需要编写更多的代码,这在一定程度上造成了代码的编写和维护的困难。 面向对象的概念在面向过程的开发当中,开发人员发现在调用函数的时候,很难分清楚函数本身是属于哪个文件的,在代码的阅读上面,不同的开发人员会发现很难读懂其他的开发人员的代码。虽然注释和良好的命名都是必要的,但是还是给开发人员之间的交互造成了极大的困扰。为了解决这个问题,于是有了面向对象的概念。面向对象的一段C#代码如下所示。

4、 class Program/主程序类 public int sum(int x, int y)/sum方法 return x + y;/返回值 static void Main(string args)/静态方法 int x = 1, y = 2;/声明整型变量 Program sum = new Program();/创建对象 Console.WriteLine(sum.sum(x, y);/输出方法返回值 上述代码中,sum是一个Program对象,sum有一个方法sum进行加法运算。读者可能会疑惑,相对于面向过程,面向对象的代码量好像变多了,而且执行的方法过程并没有太大的区别。其实面向

5、对象解决了代码难以划分结构、代码可读性不高的问题,让程序变得更加容易组织和阅读。例如在.NET中的Convert.ToInt32静态方法,当阅读到此代码的时候,开发人员能够比较清楚的知道这个方法做了什么操。而在调用面向过程中的函数的时候,如果函数的名称是CTi32,而又分不清该函数在上下文中起到的作用时,会比较难以理解这个方法究竟做了什么。 面向组件的概念面向组件其实是面向对象的另一种加强。在面向对象中,常常需要引用命名空间或者引用头文件(如C+)来说明一个函数所在的对象与另一个同样名称的函数所在的对象是不同的。在传统的应用程序开发过程中,当客户更改了若干需求,往往只需要修改一个很小的功能,就

6、要改动很多的代码,因此就出现了软件危机。于是人们使用了分层的概念,将代码封装在一个类,然后对类进行组织协调,通过编译器对类或类库进行编译,形成DLL组件。在应用程序中使用DLL,从而提高了代码的重用性。分层的概念也是设计模式的开端。面向组件的概念在平时就已经被读者广泛使用了,例如.NET中的某些类库,还有COM组件等。面向组件的概念对开发人员在设计的思想上要求更高,这些要求不仅仅局限于编码。3.2 面向对象的C#实现C#是面向对象的编程语言。在面向对象开发当中,不可避免的要创建一个类,创建类后还需要创建该类的属性和方法来描述对象,然后再创建这个类的对象进行实例化。创建后的对象能够通过类中的属性

7、和方法完成相应的操作。 定义什么是对象?世间万物皆对象,在生活中,可能是一只猫、一只狗,或者是饼干、一张订单、银行卡等等都是对象。对象描述了一个物体的特征,抽象一个实际的物体或一个方法。类定义了对象的特征,对对象进行了描述。这些特征包括对象的属性、对象的方法、对象的权限,以及如何访问该对象。在生活中就有很多例子,例如人类属于世界上的动物,并属于哺乳动物,同样,猫、狗、鸟也属于哺乳动物。所以,哺乳动物能够描述人类、猫、狗、鸟的一些基本特性。但是,人类会说话;猫会爬树;鸟会飞,不同的动物之间,实现的功能又不尽相同。所以这些对象之间也是有区别的。程序开发人员能够为哺乳动物定义基本的相同的特性,如重量

8、、体色、有没有毛之类,同样也能定义哺乳动物是否能够行走和飞行或者进行其他的操作。当然,如果定义了人类能够飞行,这是非常不符合逻辑的,类的设计同时也是需要符合逻辑。注意:虽然在类设计中,能够自行设计相应的类和方法,以及属性,例如人类能够飞行,但是这个类的设计是不复合逻辑的,也是没有必要的。所以在类设计中,只要尽量完整的描述与现实中相同的属性即可。 创建一个类和其方法上一节中了解了什么是面向对象,初学者可能还是对什么是面向对象、什么是对象、为什么要使用面向对象等概念很模糊。这里可以通过创建一个类可以深入了解面向对象的概念。在Visual Studio 2008 中,系统提供了类的创建向导,如图3-

9、1所示。图3-1 创建一个类创建一个类的步骤如下所示。(1)在Visual Studio 2008中打开一个项目。(2)右击该项目,在下拉菜单中选择【添加】选项,在【添加】下拉菜单中选择【新建项】选项。(3)在弹出对话框中选择【类】选项并,如图3-1所示,并给类一个名称。(3)单击【添加】按钮,类就添加到项目中了。技巧:也可以在导航菜单栏中的【文件】菜单栏中选择【新建文件】创建一个类文件。在创建了类文件之后,就能够编写代码创建类描述对象,为了能够描述哺乳动物,这里创建一个Animal类,示例代码如下所示。using System;using System.Collections.Generic

10、;using System.Linq;/声明命名空间using System.Text;/不同的命名空间namespace MyClass/声明命名空间 class Animal/定义类 使用C#创建一个类,命名空间会包含在类文件中。默认命名空间通常与创建的项目名称相同,示例代码如下所示。namespace MyClass/当前程序的命名空间类被创建之后,可以向类中添加方法、属性等,以便更加清晰的描述该对象,示例代码如下所示。namespace MyClass public class Animal/创建对象 string color;/对象包含的字段 public string get()/

11、对象的方法 return color;/执行的方法 在主函数中,可以调用Animal类并创建该类的对象并执行相应的方法,这样就能够很好的描述一个对象并执行相应对象的动作,示例代码如下所示。 static void Main(string args) Animal an = new Animal();/创建对象 an.get();/执行方法 上述代码首先创建了一个Animal对象an,在创建对象后执行了对象的get方法进行该对象的颜色的获取,从而得到了一个动物an的颜色。 类成员在C#中,类包含若干个组成成员,这些组成成员包括字段、属性、方法、事件等,这些组成成员能够彼此协调用于对象的深入描述。

12、1字段“字段”是包含在类中的对象的值,字段使类可以封装数据,字段的存储可以满足类设计中所需要描述。例如上一节中Animal类中的字段color,就是用来描述动物的颜色。当然,Animal的特性不只颜色,可以声明多个字段描述Animal类的对象,示例代码如下所示。 class Animal public string color;/声明颜色字段 public bool haveFeather;/声明是否含有羽毛字段 public int age;/年龄字段 上述代码中,对Animal类声明了另外两个字段,用来描述是否有羽毛和年龄。当需要访问该类的字段的时候,需要声明对象,并使用点“.”操作符实现

13、,Visual Studio 2008中对“.”操作符有智能提示功能,示例代码如下所示。 Animal bird = new Animal();/创建对象 bird.haveFeather = true;/鸟有羽毛 bird.color = black;/这是一只黑色的鸟2属性C#中,属性是类中可以像类的字段一样访问的方法。属性可以为字段提供保护,避免字段在用户创建的对象不知情的情况下下被更改。属性机制非常灵活,提供了读取、编写或计算私有字段的值,可以像公共数据成员一样使用属性。在C#中,它们被称为“访问器”,为C#应用程序中类的成员的访问提供安全性保障。当一个字段的权限为私有(private)时,不能通过对象的“.”操作来访问,但是可以通过“访问器”来访问,示例代码如下所示。 public class Animal private int _age;/定义私有变量 public int Age get return _age; set _age = value;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号