C#入门开始

什么是面向对象

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。

面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工只能领域等.

面向对象是一种对现实世界的理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物.


面向对象


什么是面向过程

自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。程序流程在写程序时就已决定。

面向对象编程思想

面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分.这些程序设计语言可以归纳到一下几类:

系统中一切事务皆对象;

对象是属性及其操作的封装体;

对象可按其相纸划分为类,对象称为类的实例;

实例管理和继承关系是对象之间的静态关系;

消息传递是对象之间动态联系的唯一形态,也是计算的唯一形式;

方法是消息的序列.

从世界观:

面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界.

从方法学:

面向对象的方法是面向对象的是就干在开发方法中的直接运用.它强调系统的结构应该直接与现实世界的结构相应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统.

面向对象”是专指在程序设计中采用封装、继承、多态和抽象等设计方法。可是,这个定义显然不能再适合情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

基本概念

1.对象:   万物皆对象

对象是人们要进行研究的任何事务,从最简单的整数到复杂的飞机等均可看做对象,不仅表示具体的事务,还能表示抽象的规则、计划和事件.

2.对象和行为:

对象具有状态,一个对象用数据值来描述它的状态;

对象还有操作,用于改变对象的装填,操作就是对象的行为;

对象实现了数据和操作的结合,是数据和操作封装与对象的统一体中

3.类:

具有相同或相似性质的对象的抽象就是类.对象就是抽象的类,类的具体化就是对象."类是实例就是对象".

类具有属性,它的对象的状态的抽象,用数据结构来描述类的属性.

类具有操作,他的对象的行为的抽象,用操作名和实现该操作的方法来描述.

4.类的结构

在客观世界中有若干类,这些类之间有一定的结构关系.通常有两个主要的结构关系:

1.一般--具体结构关系称:分类结构,也可以说是"或"关系,或者是"is a"关系

2.整体--部分结构关系称:组装结构,他们之间关系是一种"与"关系,或者是"has a"关系.

5.消息和方法

对象之间的通讯的结构是叫消息.在对象操作中,当一个消息发给某个对象是,消息包含接收 对象去执行某种操作的消息.发消息至少要包括说明接收的消息对象名、发送给改对象的消息名(对象名、方法名).一般还有对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名.

类中操作的实现过程叫方法,一个方法有方法名、参数、方法体.

面向对象的特征

1.对象唯一性:每个对象都有自身唯一的标识,通过这个标识,可找到相应的对象.

2.分类性:具有一致的数据结构(属性)和行为(操作)的对象抽象成类.一个类就是一中抽象,反应了与应用有关的重要性质而忽略无关内容.任何类划分都是主观的,但必须与具体应用相关.

3.继承性:子类自动共享弗雷数据结构和方法的机制,这是类之间一种关系.在定义和实现一个类的时候,可以和一个已经存在的类的基础上进行.把这个已存在的类所定义的内容作为自己的内容,并加入若干新的内容.

在开发中类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织和分类的行之有效的方法,简化了对象、类的创建的工作量,增加代码的可重性.

4.多态性:相同的操作或函数、过程可作用多种类型的对象上并获得不同的结果.不同的对象,收到同一消息可以产生不同的结果.

多态性允许每个对象一适应自身的方式去响应共同的消息.

多态性增强软件的灵活性和重要性.

要素:

1.抽象

强调实体的本质、内在的属性.开发中,抽象指在决定如何实现对象之间的对象之前的意义和行为,使用抽象可以尽可能避免过早考虑一些细节.

类实现了对象的数据(即状态)和行为的抽象

2.封装性(信息隐藏)

保证软件部件具有优良的模块性的基础.

对象是封装的最基本的单位,封装防止了程序相互依赖性二带来的变动影响.面对对象的封装比传统语言的封装更为清晰、更为有力.

3.共享性

面向对象技术在不同级别上促进了共享

同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、行为特征的共享关系。

在同一应用中共享。在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。

在不同应用中共享。面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。

4.强调对象结构而不是程序结构

"面向对象"的三大特点(封装,继承,多态)缺一不可。

"基于对象"是"使用对象",无继承.

你可能感兴趣的:(C#入门开始)