前言
提示:在学习Java的过程中,首先了解到的Java语言的特点就是简单易学,其次就是面向对象的特点。在依次了解面向对象(封装、继承、多态)的特点后,自己对封装的概念和使用场景有了浓厚的兴趣。
通过查看很多人的总结和举例,希望可以为大家,也为自己记录健康的封装概念和使用的部分方法。
提示:以下是本篇文章正文内容。
一、封装的基本概念
概念: 封装是一种将 实现的过程与内部的属性 隐藏,只提供给外界公有的方法访问内部的属性。
[例子]
:我想要使用人脸支付的时候,只需要把脸放在摄像头根据提示等待若干时间,然后完成了支付操作。
[解释]
:我只知道只能将脸放在摄像头前可以实现支付,但是我并不知道程序内部是如何实现判断我的脸是否符合身份验证的代码逻辑,也不知道除了以上的办法还有没有其他操作可以完成人脸支付。
二、封装的优点
- 可以对成员变量进行更精确的控制。
[例子见下方代码]
public class user {
private int age ;//用户的年龄
public int getAge() {return age;}
// 默认set:public void setAge(int age) {this.age = age;}
// 假设业务场景的数据进行精准的控制:使用者最高记录没有活到120岁的人,因此避免数据不符合标准。
public void setAge(int age) {
if(age > 0 && age < 120){
this.age = age;
}
else{
System.out.println("年龄不符客观事实!");
this.age = 20 ; //年龄不符要求,默认为20岁
}}
- 良好的封装能够减少代码之间的耦合度(维护方便)。
[解释]
:使用者无法调用被保护(private)的属性、方法。当类的设计者改变了类的内部实现时,只要接口(封装的类)不变,对于类的使用者而言,没有任何影响。 - 隐藏内部程序实现的细节。
- 防止该类的代码和数据被外部类定义的代码或外部成员随机访问,加强了代码的安全性。
三、使用场景
- 不希望在外部类中随意访问类中的成员变量。
- 需要对数据进行更加精准的控制。
四、个人总结
封装是面向对象的灵魂,每一个封装类都类似于一个黑盒,只能看到提供给我们的访问方法。在程序开发的过程中、修改BUG的过程中因为它们个体独立性强,正确地使用封装类可以避免反复地修改代码,出现因为修改1个BUG而出现另一个BUG的情况。