乐趣区

关于java:面向对象程序设计OOP

面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。OOP 的一条根本准则是计算机程序由单个可能起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个次要指标:重用性、灵活性和扩展性。OOP= 对象 + 类 + 继承 + 多态 + 音讯,其中外围概念是类和对象。

特点

1、封装性:

封装是指将一个计算机系统中的数据以及与这个数据相干的所有操作语言(即形容每一个对象的属性以及其行为的程序代码)组装到一起,一并封装在一个有机的实体中,把它们封装在一个“模块”中,也就是一个类中,为软件结构的相干部件所具备的模块性提供良好的根底。在面向对象技术的相干原理以及程序语言中,封装的最根本单位是对象,而使得软件结构的相干部件的实现“高内聚、低耦合”的“最佳状态”便是面向对象技术的封装性所须要实现的最根本的指标。对于用户来说,对象是如何对各种行为进行操作、运行、实现等细节是不须要刨根问底理解分明的,用户只须要通过封装外的通道对计算机进行相干方面的操作即可。大大地简化了操作的步骤,使用户应用起计算机来更加高效、更加得心应手。

2、继承性:

继承性是面向对象技术中的另外一个重要特点,其次要指的是两种或者两种以上的类之间的分割与区别。继承,顾名思义,是后者连续前者的某些方面的特点,而在面向对象技术则是指一个对象针对于另一个对象的某些独有的特点、能力进行复制或者连续。如果依照继承源进行划分,则能够分为单继承(一个对象仅仅从另外一个对象中继承其相应的特点)与多继承(一个对象能够同时从另外两个或者两个以上的对象中继承所须要的特点与能力,并且不会发生冲突等景象);如果从继承中蕴含的内容进行划分,则继承能够分为四类,别离为取代继承(一个对象在继承另一个对象的能力与特点之后将父对象进行取代)、蕴含继承(一个对象在将另一个对象的能力与特点进行齐全的继承之后,又继承了其余对象所蕴含的相应内容,后果导致这个对象所具备的能力与特点大于等于父对象,实现了对于父对象的蕴含)、受限继承、特化继承。

3、多态性:

从宏观的角度来讲,多态性是指在面向对象技术中,当不同的多个对象同时接管到同一个完全相同的音讯之后,所体现进去的动作是各不相同的,具备多种状态;从宏观的角度来讲,多态性是指在一组对象的一个类中,面向对象技术能够应用雷同的调用形式来对雷同的函数名进行调用,即使这若干个具备雷同函数名的函数所示意的函数是不同的。

设计长处

面向对象呈现以前,结构化程序设计是程序设计的支流,结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列须要实现的工作,函数(在此泛指例程、函数、过程)用于实现这些工作,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何依据规定的条件实现指定的工作。

比拟面向对象程序设计和面向过程程序设计,还能够失去面向对象程序设计的其余长处:

1)数据抽象的概念能够在放弃内部接口不变的状况下扭转外部实现,从而缩小甚至防止对外界的烦扰;

2)通过继承大幅缩小冗余的代码,并能够不便地扩大现有代码,进步编码效率,也减低了出错概率,升高软件维护的难度;

3)联合面向对象分析、面向对象设计,容许将问题域中的对象间接映射到程序中,缩小软件开发过程中中间环节的转换过程;

4)通过对对象的分别、划分能够将软件系统宰割为若干绝对为独立的局部,在肯定水平上更便于控制软件复杂度;

5)以对象为核心的设计能够帮忙开发人员从动态(属性)和动静(办法)两个方面把握问题,从而更好地实现零碎;

6)通过对象的聚合、联结能够在保障封装与形象的准则下实现对象在内在构造以及外在性能上的裁减,从而实现对象由低到高的降级。[3]

设计缺点

(1)运行效率较低。

类的大量加载会就义零碎性能,升高运行速度。尽管 CPU 速度在进步,内存容量在减少,但这一问题仍会随着零碎规模变大而逐步显示进去,变得越发重大。

(2)类库宏大。

因为类库都过于宏大,程序员对它们的把握须要一段时间,从遍及、推广的角度来看,类库应在保障其性能齐备的根底上进行相应的缩减。

(3)类库可靠性。

越宏大的零碎必会存在咱们无奈预知的问题隐患,程序员无奈齐全保障类库中的每个类在各种环境中百分之百的正确,当应用的类产生了问题,就会影响后续工作,程序员也有可能颠覆原来的全副工作。

退出移动版