面向对象概念精解

来源:互联网 发布:淘宝店铺域名怎么设置 编辑:程序博客网 时间:2024/06/06 06:40
1.抽象
2.问题领域
3.对象(属性,状态,方法,行为,实现)
4.类(类型)
5.封装(透明话)
6.继承(扩展,重载,覆盖)
7.多态(动态绑定,组合)
8.接口
9.消息,服务
面向对象编程的三个原则:封装 ,继承 ,多态
封装:将代码及其处理数据捆绑在一起的一种机制
继承:一个对象获得另一个对象的属性和过程
多态性: 一个接口,多种方法

一、面向对象
1.面向机器
 早期计算机中运行的程序大概都是为特定的硬件系统专门设计的,称为面向机器的程序。开发这类程序的语言称为机器语言,也叫做低级语言或二进制代码语言。
  这类程序运行速度和效率都非常高,但是可读性和可种植性极差,随着软件开发规模的扩大,这类面向机器和程序逐渐被以Fortran,C等为代表的面向过程的程序所取代。                                            
2.面向过程
 其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。数据结构、算法是面向过程问题求解的核心组成。其中数据结构利用计算机的离散逻辑来量化表达需要求解的问题,二算法则研究如何快捷,高效的组织解决问题的具体过程。
 面向过程遵循面向过程的问题求解方法。可以精确,完备地描述具体求解过程(这里的过程通常是指操作),但却不足以把一个包含了多个相互关联的过程的复杂系统表述出来。
 
三、问题领域
 问题领域,是指软件系统所模拟的真实世界中的系统。
 随着计算机的发展和普入,软件系统渗透到社会的各个方面,几乎用来模拟任意一种问题领域。
 如学校、医院、商场、电影摄制组和太阳系等。
 
四、对象--面向对象的技术核心所在。
对象是对问题领域中事物的抽象!
对象具有如下特征:
1、万物皆为对象;
 问题领域中的实体和概念都可以抽象为对象。
2、每个对象那都是唯一的;
 对象的惟一性来自真实世界中食物的惟一性。
3、对象具有属性和行为;
对象的行为包括具有的功能及具体的实现。
在建立对象模型时,只关注对象有什么样的功能,而不需要考虑如何实现这些功能。
对象的属性用成员变量来表示,对象的行为用成员方法表示。
4、对象具有状态;
状态是指某个瞬间对象的各个属性的取值。
对象的某些行为往往会改变对象自身的状态,及属性的取值。
5、对象都属于某个类,每个对象都市某个类的实例。

五、类--简单地说,类是同种对象的集合与抽象。
类是一组具有相同属性和行为对象的抽象,或集合。
类及类的关系构成了对象模式的主要内容。面向对象编程的主要任务就是定义对象模型中的各个类 
六、封装
封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。这是面向对象的基本思想之一。
使用封装的优点:
1.便于使用者正确,方便地理解和使用系统,防止使用者错误修改系统的属性
2.有助于建立各个系统之间的松耦合关系,提高系统的独立性
3.提高软件的课重用性,每一个系统都是一个相对独立的整体,可以在多种环境中得到重用
4.降低了构建大型系统的风险,即使整个系统不成功,个别的独立于系统有可能依旧是有价值
一个设计良好的系统会封装所有的实现细节,把他的接口与实现清晰地隔离开来,系统之间只通过接口进行通信。
面向对象的额编程语言,主要通过访问控制机制来进行封装,这种机制能控制对象的属性和方法的可访问性。
在java语言中提供了以下4种访问控制级别:
public:对外公开,访问级别最高
protected:只对同一个包中的类或者子类公开
默认default:只对同一个包中的类公开
private:不对外公开,只能在对象内部访问,访问级别最低
哪些属性和方法该公开,哪些该隐藏?
封装的两个大致原则:
1.把尽可能多的东西隐藏起来,对外提高简捷的接口。
  系统的额封装程度越高,那么它的相对独立型就越高,使用就更方便。
2.把所有的属性藏起来
透明:对象封装实现的细节,也意味着对象的实现细节对使用者是透明的

八、多态
1.多态的实质:
当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对系统A是透明的。
抽象机制:是开发人员在开发过程中使用的机制
动态绑定机制:是java虚拟机运行时提供的机制
抽象机制和动态绑定机制能共同提高系统之间的松耦合性。
2.组合是 一种用多个简单子系统来组装出复杂系统的有效手段
3.动态绑定
(补充)
多态:对同一个消息产生不同的结果反映出多种状态

九、接口
在java语言中,接口有两种意思:一是指概念性的接口;二是指程序中的接口类型。
1.概念性的接口:
即指系统对外提供的所有服务,在对象中表现为public类型的方法的声明。
既然每个对象都是服务提供者,如何对外提供服务呢?对象通过接口对外提供服务。
在现实世界中,接口也是实体,比如电源插口,电灯开关等,而在面向对象范畴中,接口是一个抽象的概念,实质系统对外提供的所有服务。系统的接口描述描述系统能够提供哪些服务,但是不包含服务的实现细节。这里的系统既可以指整个软件系统,也可以指一个子系统,对象是最小的子系统,每一个对象都是服务提供者,因此每个对象都有接口。

2.接口类型:
指interface关键字定义的实实在在的接口,它用于明确地描述系统对外提供的所有服务,它能够更加清晰地把系统的实现细节与接口分离。

十、消息,服务
软件系统的复杂功能是由各种对象协同工作来完成的。
每个对象都有特定的功能,相对于其他对象而言,它的功能就是为其他对象提供的服务。
一个对象为了获得另一个对象的服务,需要向那对象提出获得特定服务的请求,提出请求的过程被称为发送消息。
对象提供的服务是由对象的方法来实现的,因此发送消息实际上也是调用一个对象的方法。
 
从使用角度出发,整个软件系统就是服务提供者。操作软件系统的用户是系统的边界。
在UML语言中,系统边界被称为角色(Actor)。在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其子系统提供服务,子系统之间通过发送消息来互相获得服务。一个孤立的不对外提供任何服务的系统是没有任何意义的。






原创粉丝点击