注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷海涛 廊坊师范学院信息技术提高班十四期

当你的才华还撑不起你的野心时,就应该静下心来学习!

 
 
 

日志

 
 

来认识一下OOP  

2017-01-08 16:10:51|  分类: 学术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

刚开始接触计算机编程,有太多不懂的知识,不过没关系,遇到一个学一个,积少成多了,我们就是“专家”啦!

面向对象编程(Object Oriented ProgrammingOOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。

OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件:

组件 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。

抽象性 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。

封装 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。

多态性 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果依据实际调用的类型。

继承性 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。

由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行。Python Ruby 是最近才出现的语言,在开发时完全采用了 OOP 的思想,而流行的 Perl 脚本语言从版本5开始也慢慢地加入了新的面向对象的功能组件。用组件代替“现实”上的实体成为 JavaScriptECMAScript 得以流行的原因,有论证表明对组件进行适当的组合就可以在英特网上代替 HTML XML 的文档对象模型(DOM)。

1.1面向对象程序设计的特征:

1 封装

2 继承

3 多态

4)抽象

1.2类与数据封装

1.2.1什么是类?

简单的说,类就是一种用户定义的数据类型,跟结构类似;并且,类具有自己的成员变量和成员函数(方法),通过它们可以对类自身进行操作。如:汽车可以看作是发动机、车轮、座椅等诸如此类的集合。也可以从功能的角度来研究,譬如,能移动,加速,减速,刹车等。

1.2.2 封装(encapsulation

定义:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。封装的优点如下:

1) 封装允许类的客户不必关心类的工作机理就可以使用它。就象驾驶员不必了解发动机的工作原理就可以驾驶汽车一样,类的客户在使用一个类时也不必了解它是如何工作的,而只需了解它的功能即可。

2) 所有对数据的访问和操作都必须通过特定的方法,否则便无法使用,从而达到数据隐藏的目的。

1.2.3 对象

对象就是类的实例。类与对象的关系就如类型和变量的关系,所有对类的操作都必须通过对象来实现。当一个类定义了多个对象时,每个对象拥有各自的成员数据。

1.2.4 类的三种成员类型

1) 私有成员(private):缺省情况下,一个类中的所有成员都是私有的。私有成员只能被类本身的成员函数访问。能够被继承但是被继承的私有成员不能够使用。

2) 公有成员(public):公有成员可以被类成员函数和外部函数使用。

3) 保护成员(protected):类的保护成员能被类及其派生类的成员函数和友员函数使用,具有继承性。

1.3继承

1.3.1 传统程序设计的缺点:

增加功能对程序所作的修改工作量非常大。

1.3.2 继承的优点:

继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。

鉴于目前的知识水平,先发这么多,以后知识多了再回来补充完整。

  评论这张
 
阅读(49)| 评论(19)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018