1 Java面向对象(OOP)概念
面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。
对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
目前流行的面向对象语言有:Java,C#,PHP,Python,C ++等。
面向对象编程的主要目的是实现现实世界的实体,例如,对象,类,抽象,继承,多态等。
2 Java面向对象的核心元素
对象是指现实世界中的实体,例如笔,椅子,桌子,计算机,手表等。 面向对象编程是一种使用类和对象设计程序的方法或规范。它提出了一些概念,它简化了软件开发和维护:
- 对象
- 类
- 继承
- 多态
- 抽象
- 封装
除了这些概念之外,在面向对象的设计中还有其他一些术语:
- 耦合
- 内聚
- 关联
- 聚合
- 组合
2.1 对象
拥有状态和行为的任何实体都称为对象。例如,椅子,笔,桌子,键盘,自行车等。它可以是物理的或逻辑的。
可以将对象定义为类的实例。一个对象包含一个地址,并占用一些内存空间。对象之间可以通信而无需知道彼此的数据或代码的详细信息。唯一要做的事情是接受的消息类型和对象返回的响应类型。
例如:狗是对象,因为它具有颜色,名称,品种等状态,以及诸如摇尾巴,吠叫,进食等行为。
2.2 类
对象的集合称为类。它是一个逻辑实体。
也可以将类定义为可用来创建单个对象的模板。类不占用任何空间。
2.3 继承
当一个对象获得父对象的所有属性和行为时,就称为继承。它提供了代码可重用性。它用于实现运行时多态。
2.4 多态
如果一项任务以不同的方式执行,则称为多态。例如:以不同的方式说服客户,绘制一些东西,例如形状,三角形,矩形等。
在Java中,我们使用方法重载和方法重写来实现多态。
另一个例子是说话。例如,猫讲喵,狗吠叫,等等。
2.5 抽象
隐藏内部细节并显示功能被称为抽象。例如电话,我们不知道内部如何处理。
在Java中,我们使用抽象类和接口来实现抽象。
2.6 封装
将代码和数据绑定(或包装)到一个单元中被称为封装。例如,胶囊用不同的药物包裹。
Java类是封装的示例。JavaBean是完全封装的类,因为JavaBean中的所有数据成员都是私有的。
2.7 耦合
如果一个类包含了另一个类的详细信息,则存在强耦合。在Java中,我们使用private,protected和public修饰符来修饰类,方法和字段的可见性级别。您可以认为接口是较弱的耦合,因为没有具体的实现。
2.8 内聚
内聚性是指执行单个明确定义的任务的组件级别。一个明确定义的任务是通过高度内聚力的方法完成的。内聚力弱的方法会将任务分为几个部分。java.io软件包是具有高度凝聚力的软件包,因为它具有与I/O相关的类和接口。但是,java.util软件包是一个内聚性较弱的软件包,因为它具有不相关的类和接口。
2.9 关联
关联表示对象之间的关系。一个对象可以与一个对象或多个对象相关联。对象之间可以有四种关联类型:
- 一对一
- 一对多
- 多对一
- 多对多
让我们通过实时示例了解这种关系。例如,一个国家可以有一位总理(一对一),一位总理可以有很多部长(一对多)。同样,许多国会议员可以有一个总理(多对一),许多部长可以有多个部门(多对多)。
关联可以是单向或双向的。
2.10 聚合
聚合是一种实现关联的方法。聚合表示一种关系,其中一个对象包含其他对象作为其状态的一部分。它表示对象之间的弱关系。在Java中,它也被称为has-a关系。就像,继承表示is-a关系。这是重用对象的另一种方法。
2.22 组合
组合表示一种关系,其中一个对象包含其他对象作为其状态的一部分。包含对象和从属对象之间存在很强的关系。这是包含对象不具有独立存在的状态。如果删除父对象,则所有子对象将被自动删除。
3 面向对象相对面向过程的优势
- 面向对象(OOP)使开发和维护更加容易,而在面向过程的编程语言中,如果代码随着项目规模的增加而增长,则管理起来并不容易。
- 面向对象(OOP)提供数据隐藏,而在面向过程的编程语言中,可以从任何地方访问全局数据。
- 面向对象(OOP)提供了更有效地模拟现实世界事件的能力。如果我们使用面向对象的编程语言,我们可以提供实际问题的解决方案。
本站推荐
-
1219
-
1019
-
563
-
491
-
464