文章目录
- 🚀文章导读
- 1、封装的概念
- 2、访问限定修饰符
- 3、如何进行封装
- 4、封装的优点:
🚀文章导读
在本篇文章中,将详细的对封装进行总结,文章仅仅是个人的一些理解,如果有错误的地方,还望指出看完本篇文章,必须理解以下几个问题:
1、什么是封装,封装的意义是什么?
2、如何进行封装
3、封装的优点是什么?
4,四个访问限定修饰符的功能及用法
1、封装的概念
面向对象的三大的特征:封装、继承、多态。封装是一种信息隐藏技术。
封装概念:把一个对象的属性进行私有化,同时提供一些可以被外界访问的属性的方法。
封装的意义:把类中的属性和方法封装在一起,使外部只能通过特定的方法访问类中的属性和方法,这样就可以防止外部直接修改类中的属性和方法,从而有效的控制类内部的状态。
以上是封装的概念,关于封装的概念,网上都是五花八门的,只要简单的理解就行,不用死记概念,那么,要想理解封装,就要先知道封装是如何体现出来的,通过什么对成员属性进行封装,下面就来看一些访问限定修饰符,封装时又用到了哪个修饰符。
2、访问限定修饰符
首先让大家看一张图,下面我将结合代码为大家讲解封装所用的修饰符,在java中,可以使用访问修饰符来保护对 类、变量 、方法、以及构造方法的访问、Java支持四种不同的访问权限;
**private:**在一包同一类中可见。使用对象:成员变量,成员方法。注意不能修饰类(外部类)
default:在类中是默认的,当没有用任何访问修饰符修饰时,默认的就是default;在同一包同一类和同一包不同类中可见;使用对象:类、接口、方法、变量;
protected:对同一包中的类和所有子类可见,使用对象:变量、方法;注意,不能修饰类(外部类)
public:对所有类可见,使用对象:类、接口、变量,方法
1、private修饰符:对类中的成员属性进行隐藏,防止被外部类访问,这个修饰符就是进行封装的一种体现,说白了就是,要想进行封装,就要用private进行修饰
3、如何进行封装
下面用代码进行讲解:
图中,定义了一个Student类,而类中的成员属性name 和 age都是用private进行修饰的,然后在main方法中实例化了一个Student对象,通过对象的引用来访问Student中的成员属性,包括private修饰的属性也能访问,不过要注意,此时是在一个类中。
上图是在同一个类的情况下,对private修饰的name可以进行访问,但是请看下图中出现的情况。定义了两个类,Student 和 TestStudent ,在TestStudent类中访问Student类中的被private修饰的成员属性,可以看到,没办法进行访问,这也就印证了上面所说的,private对类中的成员属性进行了隐藏,防止被外部类进行访问。
问题:
如果想要在一个类中访问另一个类中用private修饰的成员属性(变量)时,应该怎么做?
解答:
如果想要对不同类中的private修饰的成员属性进行访问,需要在该类中提供一些访问这些属性的方法,而这些方法都是用public进行修饰的,如果想要在外部类中访问这些成员属性时,直接调用这个方法就可以了!下面用代码进行演示。
这些方法可以是我们自己写的方法,也可以使用快捷方法来创建这些方法,下面给大家演示。
在TestStudent类中就可以通过对象的引用来调用Student类中所提供的方法来对这些被private所修饰的属性进行访问。以上就是用快捷方式创建的方法,当然我们也可以自己定义方法。这里就不再演示。
所以封装主要是通过private来实现的,对类中的成员属性进行私有化,成员属性用private修饰,向外界提供的访问这些属性的方法用public进行修饰
4、封装的优点:
1、隐藏实现细节
2、安全性
3、增加代码的复用性
4、模块化