好久不来,开始java基础补课~~第一讲~~

面向对象(Object Oriented):
是相对面向过程而言的。
面向过程是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。[以具体的阶梯过程为研究和实现的主体]
面向对象在解决问题上面力求符合人们日常自然的思维习惯,降低、分解问题的难度和复杂性,提高整个求解过程的可控制性、可监测性和可维护性,从而达到以较小的代价和较高的效率获得较满意的目的。[以需要解决的问题中所涉及到的各种对象为主体]
【主要特征是: 各对象之间的消息传递和各类之间的继承


面向对象的优点:
1.对数据的封装消除了传统机构方法中数据与操作分离所带来的种种问题,提高了可复用性和可维护性,降低了程序员保持数据与操作相容的负担。
2.把对象的私有数据和公共数据分离开,减少了可能的模块间的干扰,降低复杂性,提高了可控性。
3.可以通过自身定义的操作来管理自己,有很好的自洽性。
4.对象通过一定的接口和相应的消息机制与外界相连,提高了程序的安全性。
5.通过继承很方便的实现应用的扩张和已有代码的重复使用,提高了开发效率。


对象:现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
:同种对象的集合与抽象。
实体:实际存在的,计算机可理解,可操纵,具有一定属性和行为的对象。
【类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,属于类的某一个对象则被称为是类的一个实例】


对象:
状态和行为是对象的主要属性
对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息。
行为时对象的第二个属性,又称为对象的操作,主要用来表述对象的动态属性,作用是设置或改变对象的状态。
对象是具有唯一对象名和固定对外接口的一组属性和操作的集合,用来模拟组成或影响现实世界问题的一个或一组因素。[对象名是对象之间的区别,对象主要的特点是以数据为中心。]
对象之间的关系
包含:当一个对象包含另一个对象的时候,它将在自己的内存空间中为这个被包含对象流出专门的空间。
[就像显像管有专门的位置用来连接它和电视机,但是电视机是包括显像管的。]
继承:当对象A是对象B的特例的时候,就说A继承了对象B。
[就好像黑白电视和彩色电视都是电视机的特例。]
关联:当对象A的引用是对象B的属性时,对象A和对象B之间就是关联关系。
[例如每台电视都有一个生产厂商,每台电视保留了对电视生产厂商的一个引用。]


面向对象分析(Object Oriented Analysis):
主要作用是明确用户需求,并用标准化的面向对象模型规范的表述这一需求,最后将形成面向对象的分析模型,也就是OOA模型
OOA模型有五个层次:
对象-类层:捕捉开发的应用软件所对应的各个现实世界的实体,并从中抽象出对象和类。
静态属性层:将为上一层的各个类和对象涉及静态属性和他们之间的约束关系--实例连接。
服务层:定义了对象和类的动态属性以及对象之间的消息通信。(行为或方法)
结构层:定义系统中所有对象和类之间的层次结构关系(包含、继承、关联)
主题层:当系统庞大复杂的时候将它拆分为若干个相对对了的子系统
五个层次设计完成,就可以得到完整的OOA模型了。


面向对象设计(Object Oriented Design):
对OOA模型加以扩展并得到面向对象的设计阶段的最终结果——OOD模型。
在OOA模型的基础上引入界面管理、任务管理和数据管理,OOA可以理解为问题逻辑部分。
可以看出OOD由问题逻辑,界面管理,任务管理和数据管理四部分组成。实现了技术实现上的透明性,使系统的可重用性大大提高。


面向对象的实现(编码阶段):
选择一门合适的面向对象语言(Java,C#,Object Pascal)等。
用选定的语言编码实现纤细设计步骤所得的公式,图表,说明和规则等对软件系统各对象类的详尽描述。
编写好的各个类代码模块根据类的相互关系集成。
利用测试样例进行检验编码完成的各个模块和整个软件系统。


实现阶段完成,软件系统就全部完成了[面向对象软件因为对象的存在,大大的简化了维护阶段的工作。]


面向对象的开发过程的总结:
分析用户需求,从问题中抽取对象模型,将模型细化,射击类,包括类的属性和类之间相互关系,同事考察是否可以直接饮用已有类或部件;选定一种面向对象的编程语言,具体编码实现上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案。


面向对象的程序设计优点:
可重用性

提高了开发效率,缩短了开发周期,降低了开发成本
要求:
可重用模块必须是结构完整,逻辑严谨,功能明确的对立软件结构,必须具有良好的可移植性,还应该具有与外界交互通信的功能。
这样的可重用模块设计出来就是程序中的类和对象。


可扩展性
应用软件能够很方便的,容易的进行扩充和修改,这种扩充和修改的不但体现在软件的内容方面,还体现在软件的形式和工作机制方面。
它特别适合于在快速原型的软件开发方法中使用。
在开发初期,类里面可以仅包含一些最基本的属性和操作,只完成一些最基本的功能,后来的修改只需要在原来系统框架的基础上对类进行扩充和修改,维护工作量和开销大大降低。
还体现在它对模块化技术的更有效的支持。更加合适把系统拆分成许多个小单元,不同的单元分配给不同的人去做,最后进行组合就可以形成系统。


可管理性
把数据和其上的操作封装在一起,使得仅有该类的有限个方法才可以操纵和修改这些数据,当出现数据错误的时候,只需要查找与该数据相关的有限个方法就可以,和面向过程的查找所有方法相比,难易程度可想而知。




面向对象的的四大特点是:抽象,封装,继承和多态。
抽象的特点使得类能够抓住事物的实质特征,因而具有普遍性,可以使用在不同的问题中;
封装的特点使得类能够建立起严格的内部结构,保护好内部数据,减少外界的刚饶和影响,以保证类保持自身的独立性,可工作在不同环境中;
继承的特点使得一个类可以借鉴,利用已经存在的类和已经完成的工作,而不必一切从头开始,这本身就是一种可重用性的体现;
多台可以提高程序的抽象程度,使得一个类在使用其他类的功能,操作时,不必了解这个类的内部的细节情况,而只需明确他所提供的外部接口即可。这种机制为类的模块重复使用和类间的相互调用,合作提供了有利条件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值