【Java编程教程】详解Java OOP 概念
在本页中,我们将了解 OOP 的基础知识。面向对象编程是一种范式,它提供了许多概念,例如继承、数据绑定、多态性等。
Simula被认为是第一个面向对象的编程语言。一切都表示为对象的编程范例被称为真正的面向对象的编程语言。
Smalltalk被认为是第一个真正面向对象的编程语言。
流行的面向对象语言有Java、C#、PHP、Python、C++等。
面向对象编程的主要目标是实现现实世界的实体,例如对象、类、抽象、继承、多态等。
# OOP(面向对象编程系统)
对象是指真实世界的实体,例如笔、椅子、桌子、计算机、手表等。面向对象编程是一种使用类和对象设计程序的方法或范例。它通过提供一些概念来简化软件开发和维护:
Object对象
Class类
Inheritance继承
Polymorphism多态
Abstraction抽象
Encapsulation封装
除了这些概念之外,面向对象设计中还使用了一些其他术语:
耦合
聚合
# Object对象
任何具有状态和行为的实体都称为对象。例如,椅子、笔、桌子、键盘、自行车等。它可以是物理的,也可以是逻辑的。
对象可以定义为类的实例。对象包含地址并占用内存中的一些空间。对象可以在不知道彼此数据或代码的细节的情况下进行通信。唯一必要的是接受的消息类型和对象返回的响应类型。
示例:狗是一个对象,因为它具有颜色、名称、品种等状态以及摇尾巴、吠叫、进食等行为。
# class类
对象的集合称为类。它是一个逻辑实体。
类也可以定义为您可以从中创建单个对象的蓝图。类不占用任何空间。
Inheritance继承
当一个对象获得父对象的所有属性和行为时,它被称为继承。它提供了代码的可重用性。它用于实现运行时多态性。
Polymorphism多态
如果一项任务以不同的方式执行,则称为多态性。例如:为了说服客户不同,画一些东西,例如形状、三角形、矩形等。
在Java中,我们使用方法重载和方法覆盖来实现多态。
另一个例子可以是说些什么;例如,猫会说喵喵声,狗会发出汪汪的叫声,等等。
Abstraction抽象
隐藏内部细节和显示功能被称为抽象。比如电话,我们不知道内部处理。
在Java中,我们使用抽象类和接口来实现抽象。
Encapsulation封装
将代码和数据绑定(或包装)到一个单元中称为封装。比如一个胶囊,里面包裹着不同的药物。
java类就是封装的例子。Java bean 是完全封装的类,因为这里所有的数据成员都是私有的。
耦合
耦合是指另一个类的知识或信息或依赖关系。当类相互了解时,就会出现这种情况。如果一个类具有另一个类的详细信息,则存在强耦合。在 Java 中,我们使用 private、protected 和 public 修饰符来显示类、方法和字段的可见性级别。您可以使用较弱耦合的接口,因为没有具体的实现。
凝聚
内聚是指执行单个明确定义的任务的组件级别。单个明确定义的任务是通过高度内聚的方法完成的。弱内聚方法会将任务拆分成单独的部分。java.io 包是一个高度内聚的包,因为它有 I/O 相关的类和接口。但是,java.util 包是一个弱内聚包,因为它具有不相关的类和接口。
关联
关联表示对象之间的关系。这里,一个对象可以与一个对象或多个对象相关联。对象之间可以有四种类型的关联:
一对一
一对多
多对一,并且
多对多
让我们通过实时示例来了解关系。例如,一个国家可以有一个总理(一对一),一个总理可以有多个部长(一对多)。此外,许多国会议员可以有一位总理(多对一),而许多部长可以有多个部门(多对多)。
关联可以是单向的或双向的。
聚合
聚合是实现关联的一种方式。聚合表示一个对象包含其他对象作为其状态的一部分的关系。它表示对象之间的弱关系。它在 Java中也被称为has-a关系。就像,继承代表is-a关系。这是重用对象的另一种方式。
# OOP 相对于面向过程的编程语言的优势
OOP 使开发和维护更容易,而在面向过程的编程语言中,如果代码随着项目规模的增加而增长,则管理起来并不容易。
2.OOP 提供数据隐藏,而在面向过程的编程语言中,可以从任何地方访问全局数据。
图:面向过程编程中的数据表示
图:面向对象编程中的数据表示
OOP 提供了更有效地模拟真实世界事件的能力。如果我们使用面向对象的编程语言,我们可以提供实际应用问题的解决方案。
扫码进群记得备注:城市、昵称和技术方向。