难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
提示
本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。
1.public危机
字段的访问修饰符有四种,分别是public、protected、private、默认的访问修饰符。
其中public是大家经常用到的访问修饰符,下面就拿public举例。
演示:
Student定义年龄字段。访问修饰符为public。
实现:
Student类:
Main类:
结果:
从运行结果来看,准确无误。
接下来,修改Main类:
将年龄设置为-20。
结果:
程序没有发现什么异常,正常运行,首先显示输出的结果是正确的,但是年龄不可能是负数。-20岁就是一个错误的描述。为了解决这一点,肯定得加验证,验证通过才可以赋值,验证不通过不可以赋值,或者小于0的就都置为0,大于200的都置为200。
修改Main类:
结果:
或者修改为以下结果也行:
Main类:
结果:
我们前面的修改都是在Main类中进行,如果还有其他地方用到Student对象,给对象设置年龄的话,那岂不是都要这样来一遍?为什么我们不在源头上控制呢?这样的话,无论建立多少对象都会执行设置年龄的方法,在设置年龄的方法里面进行验证,这样岂不是更好?
2.封装
我们必须将年龄字段隐藏起来,不能让外界直接对其获取或设置,然后提供对外的方法供其获取或设置。
怎么才能将年龄字段隐藏起来呢?
使用private访问修饰符即可。
修改Student类:
那么这样以来,我们也就无法直接获取到年龄字段,也无法再直接设置年龄。接下来,得提供获取年龄到方法和设置年龄的方法,继续修改Student类:
这样一来,我们就有了获取年龄的方法和设置年龄的方法。然后来试一试:
Main类:
结果:
从运行结果来看,准确无误。
不过,我们得把写在Main类里面的验证办法移到Student类中设置年龄的方法里去。
演示:
验证设置的年龄是否合法。
实现:
Student类:
Main类:
结果:
这样就完美了。
对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。方法对对象的内部状态进行操作,并作为对象到对象通信的主要机制。隐藏内部状态并要求通过对象的方法执行所有交互称为数据封装 - 面向对象编程的基本原则。
3.get、set方法
get、set方法是体现封装的一种形式。也是日常开发必做的。
演示:
定义多个字段,实现get、set方法。
实现:
Student类:
Main类:
结果:
从运行结果来看,准确无误。
以后请大家定义字段时,隐藏必要的字段信息,提供get、set方法。
总结
- 面向对象三大特性是封装、继承、多态。
- 对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。方法对对象的内部状态进行操作,并作为对象到对象通信的主要机制。隐藏内部状态并要求通过对象的方法执行所有交互称为数据封装 - 面向对象编程的基本原则。
至此,Java中封装相关内容讲解先告一段落,更多内容请持续关注。
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第四十四章:继承
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号Gorhaf,私信“Java学习小组”。
- 方式二:关注公众号Gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!