Java 中的面向对象概念
什么是 OOPS?
面向对象程序设计系统 (OOPs) 是一种基于抽象、封装、继承和多态原理的编程概念。它允许用户创建他们想要的类,并创建方法来处理这些类。OOPs 的基本概念是创建类,在程序中重用它们,并操作这些类以获得结果。
OOP 意为“面向对象程序设计”,是 Java 等现代编程语言中广为人知且广泛使用的概念。
Java 中的 OOPs 概念及示例
以下是 Java 中的通用 OOPs 概念
1) 类
该类是 OOPs 的基本概念之一,它是相似实体的集合。它只是一个逻辑组件,而非物理实体。让我们通过示例来理解 OOPs 的概念之一,如果您有一个名为“豪华轿车”的类,它可能包含奔驰、宝马、丰田等对象。它的属性(数据)可以是这些汽车的价格或速度。而这些汽车可以执行的方法是驾驶、倒车、刹车等。
2) 对象
对象可以定义为类的实例,在一个程序中可以有类的多个实例。对象是 Java OOPs 概念之一,它包含数据和操作数据的方法。例如——椅子、自行车、记号笔、笔、桌子、汽车等。
3) 继承
继承是 OOPs 的基本概念之一,其中一个对象获得父对象 的属性和行为。它是创建两个类之间的父子关系。它为组织和结构化任何软件提供了强大而自然的机制。
4) 多态
多态是指 Java 中 OOPs 的概念之一,即变量、对象或函数能够采用多种形式。例如,在英语中,动词 run 的含义会根据您将其与 a laptop、a foot race 和 business 一起使用而有所不同。在这里,我们根据与之一起使用的其他单词来理解 run 的含义。多态也是如此。
5) 抽象
抽象是 Java 中的 OOP 概念之一,它是一种表示基本特征而不包含背景细节的行为。它是一种创建适合特定应用程序的新数据类型的方法。让我们通过示例来理解 OOPs 的概念之一,在驾驶汽车时,您无需担心其内部工作原理。在这里,您只需关注方向盘、变速杆、加速器等部件。
6) 封装
封装是 Java OOPs 的最佳概念之一,即包装数据和代码。在此 OOPs 概念中,类的变量始终对其他类隐藏。只能通过当前类的使用方法来访问它们。例如——在学校,学生不能没有班级而存在。
7) 关联
关联是两个对象之间的关系。它是 Java 中 OOP 的概念之一,它定义了对象之间的多样性。在此 OOP 概念中,所有对象都有其独立 的生命周期,并且没有所有者。例如,许多学生可以与一位老师相关联,而一位学生也可以与多位老师相关联。
8) 聚合
在这种技术中,所有对象都有其独立的生命周期。但是,存在所有权,使得子对象不能属于另一个父对象。例如,考虑类/对象部门和教师。在这里,一个老师不能属于多个部门,但即使我们删除了部门,老师对象也不会被销毁。
9) 组合
组合是聚合的一种特殊形式。它也被称为“死亡”关系。子对象没有自己的生命周期,因此当父对象删除时,所有子对象也会自动删除。为此,让我们以房屋和房间为例。任何房屋都可以有多个房间。一个房间不能成为两个不同房屋的一部分。因此,如果您删除房屋,房间也会被删除。
OOPs (面向对象程序设计系统) 的优点
- Java 中的 OOPs 概念为程序提供了易于理解的清晰模块化结构。
- 为面向对象程序创建的对象可以在其他程序中重用。因此,它节省了显著的开发成本。
- 大型程序很难编写,但如果开发和设计团队遵循 OOPS 概念,他们就能以最少的错误更好地进行设计。
- 它增强了程序的模块化,因为每个对象都是独立存在的。
通过示例比较 OOPS 与其他编程风格
让我们通过示例了解 Java OOPs 概念与其他编程方法有何不同。
编程语言可分为 3 种主要类型
- 非结构化编程语言:所有编程语言中最原始的,具有顺序控制流。代码在程序中重复出现。
- 结构化编程语言:具有非顺序控制流。函数的使用允许代码重用。
- 面向对象编程语言:将数据和操作结合在一起。
如果视频无法访问,请点击此处
让我们通过一个示例来理解这 3 种类型。
假设您想创建一个具有以下功能的银行软件
- 存款
- 提款
- 显示余额
非结构化编程语言
最早的编程语言是非结构化编程语言。非结构化编程语言中银行应用程序的一个非常基本的代码将包含两个变量:一个账户号码,另一个为账户余额。
int account_number=20; int account_balance=100;
假设存入 100 美元。
account_balance=account_balance+100
接下来,您需要显示账户余额。
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
现在,取出 50 美元。
account_balance=account_balance-50
再次,您需要显示账户余额。
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
对于任何进一步的存款或取款操作——您将一遍又一遍地重复相同的代码行。
结构化编程
随着结构化编程的出现,重复的代码行被放入函数或方法等结构中。每当需要时,只需调用该函数。
面向对象编程
在我们的程序中,我们处理数据或对数据执行特定操作。事实上,拥有数据并对该数据执行某些操作是任何软件程序的基本特征。软件编程专家们想到要结合数据和操作。因此,面向对象编程诞生了,通常称为 OOPS。面向对象编程语言中的相同代码将具有相同的数据以及对该数据执行的某些操作。
Class Account{ int account_number; int account_balance; public void showdata(){ system.out.println(“Account Number”+account_number) System.out.println(“Account Balance”+ account_balance) } }
通过结合数据和操作,我们将获得比结构化编程更多的优势,即:
- 抽象
- 封装
- 继承
- 多态
它们将在后续教程中更详细地讨论