面向对象三大特征—封装

83 阅读2分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 

什么是封装

封装是指将具体的代码实现进行隐藏,通过私有化成员变量(private),通过提供公共的放来来进行传值赋值(get,set方法)。这样可以通过间接访问成员变量、隐藏代码实现细节,的方式提高代码的安全性。

怎么进行代码封装

1.成员变量私有化:在定义成员变量时,在最前面加上private。例如private int a;(注:成员变量可以不赋初始值)。

2.提供公共的get set方法,方法如图,其中set方法进行赋值,get方法通过接收返回值的方式取得所要的值

set方法中的this是什么意思

我们可以发现,在我们生成的set方法中,参数和成员变量重名(可以手动将局部变量改成其他不重复的名字,这是便不需要使用this关键字了)了,且没有报错,那我们如何区分成员变量和局部变量呢?我们知道this有这个的意思。所以在这里,this指代的是当前类对象。也就是说有this修饰的代表的是成员变量,而没有的是成员变量。

封装的作用

(1)对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。

(2)对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。

注意事项

  1. 外部类中的任何成员都可以在普通内部类方法中访问。
  2. 在普通内部类方法中访问同名的成员时,优先访问自己的。
  3. 普通内部类对象必须在先有外部类对象前提下才能创建。