Java OOP 中的封装与示例
什么是Java中的封装?
Java 封装 是一种将变量(数据)和方法(代码)包装为一个单元的机制。它是隐藏信息细节并保护对象的数据和行为的过程。它是四个重要的 OOP 概念之一。封装类易于测试,因此也更适合单元测试。
在本教程中,您将学习-
- 什么是 Java 中的封装?
- 通过示例学习封装
- Java 中的数据隐藏
- Java 中的 Getter 和 Setter 方法
- 抽象与封装
- Java 封装的优点
如果视频无法访问,请单击此处
通过示例学习封装
要详细了解什么是封装,请考虑以下带有存款和显示余额方法的银行帐户类
class Account { private int account_number; private int account_balance; public void show Data() { //code to show data } public void deposit(int a) { if (a < 0) { //show error } else account_balance = account_balance + a; } }
假设黑客设法访问了您的银行帐户代码。现在,他尝试通过两种方式将金额 -100 存入您的帐户。让我们看看他的第一种方法或方法。
方法一: 他试图通过操纵代码将无效金额(例如 -100)存入您的银行帐户。
现在,问题是——这可能吗? 让我们调查一下。
通常,类中的变量设置为“私有”,如下所示。它只能通过类中定义的方法访问。没有其他类或对象可以访问它们。
如果数据成员是私有的,则意味着它只能在同一个类中访问。任何外部类都不能访问其他类的私有数据成员或变量。
因此,在我们的案例中,黑客无法将金额 -100 存入您的帐户。
方法 2 :Hacker 的第一种方式存入金额失败。接下来,他尝试使用“存款”方法存入金额-100。
但是方法实现会检查负值。所以第二种方法也失败了。
因此,您永远不会将您的数据暴露给外部方。这使您的应用程序安全。
整个代码可以想象成一个胶囊,你只能通过消息进行交流。因此名称封装。
Java 中的数据隐藏
Java 中的数据隐藏 正在向其他类隐藏一个类的变量。它只能通过他们当前类的方法来访问。它对用户隐藏了实现细节。但不仅仅是数据隐藏,它还意味着更好地管理或对相关数据进行分组。
为了在 Java 中实现较小程度的封装,您可以使用诸如“protected”或“public”之类的修饰符。通过封装,开发者可以轻松地更改代码的一部分而不影响其他部分。
Java 中的 Getter 和 Setter
Java 中的 Getter 和 Setter 是用于检索和更新变量值的两种常规方法。它们主要用于创建、修改、删除和查看变量值。 setter 方法用于更新值,getter 方法用于读取或检索值。它们也被称为访问器和修改器。
下面的代码是getter和setter方法的一个例子:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
在上面的例子中,getBalance() 方法是读取变量 account_balance 值的 getter 方法,setNumber() 方法是设置或更新变量 account_number 值的 setter 方法。
抽象与封装
封装经常被抽象误解。让我们学习-
- 封装更多的是关于“如何”实现功能
- 抽象更多地是关于一个类可以做什么。
理解这种差异的一个简单例子是手机。将电路板中复杂的逻辑封装在触摸屏中,并提供接口抽象出来。
Java 封装的优点
- 封装是将数据与其相关功能绑定在一起。这里的功能是指“方法”,而数据是指“变量”
- 所以我们将变量和方法保存在一个地方。那个地方就是“上课”。类是封装的基础。
- 借助 Java 封装,您可以隐藏(限制访问)代码中的关键数据成员,从而提高安全性
- 正如我们之前所讨论的,如果一个数据成员被声明为“私有”,那么它只能在同一个类中被访问。任何外部类都不能访问其他类的数据成员(变量)。
- 但是,如果您需要访问这些变量,则必须使用 public “getter” 和 “setter” 方法。
java