你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Java高阶部分知识点汇总(二)-封装与隐藏详讲

2021-12-6 6:00:46

前言

在前面程序中,经常会出现通过某个对象的直接访问其属性的情况,这会出现很多潜在问题,例如前面我们定义过的学生类Student,我可以通过其实例对象直接访问到实例的age属性,并赋值,这在Java语法上是没有任何问题的,但是,如果我把这个age设置为负数或者设置为1000,这明显违背了现实,而前面说过对象是现实生活的描述,我们对一些现实类也需要有符合现实的数值,这就要提到面向对象的三大特性之一封装。

一.什么是封装?

封装是面向对象的三大特性之一,他的意思是将对象的属性隐藏起来在对象内部,不让外部直接访问对象内部信息,而是通过该类所提供的方法来实现对内部成员信息的访问。

封装是对现实生活的模拟,现实生活中的属性都是被隐藏在对象内部的,外界无法直接访问和修改。就像现实生活中的学生,每个学生对象的年龄是无法被直接修改的,只有时间流逝一年之后,年龄才会增长。再比如,你和别人接触的时候,别人并不能直接一看到你就知道你的名字,他必须得先询问你,才能得到你的名字。询问名字就是你对外开放的一个用于获取内部属性的一个方法,别人可以通过调用这个方法,来得到你的名字这个属性。对一个类或对象实现良好的封装,可以实现如下目的:

  1. 隐藏类的实现细节。

  2. 让访问者只能通过事先设置好的方法来访问数据,从而可以在方法里加入控制逻辑,限制访问者对属性的不合理访问。

  3. 可以进行数据的检查,保护对象数据的完整性。

为了实现良好的封装,我们需要从以下两个方面考