封装 (Encapsulation)
面向对象语言的三大特性为封装、继承和多态,Java作为面向对象编程的语言,也具有这三种特性,本文主要内容是有关封装的基础。
1 概念
在Java中,把抽象出的数据 [属性] 和对数据的操作 [方法] 封装在一起,内部数据被保护,程序的其他的部分只有通过被授权的操作 [方法] ,才能对数据进行操作。简单讲即指通过修饰符等将类内部的属性和方法的实现细节进行隐藏,只留接口供外部访问调用。
优点:
- 隐藏实现细节
- 可以对数据进行验证,保证安全合理
就例如一个电视机,厂家将电视机的电路板,液晶模组和各种模块组件隐藏在电机机壳下,只留下一些接口和遥控器供用户与电视机进行交互。
2 封装的实现
1.将属性进行私有化(使用private修饰,外部不能直接修改属性)
2.提供一个公共的(public) set 方法用于对属性判断并赋值
class ClassName{
private String name;
public void setName(String name){
this.name = name;;
}
//格式
public void setXxx(类型 参数){
//加入数据验证逻辑
属性 = 参数;
}
}
3.提供一个公共的(public) get 方法,用于获取属性的值
public String getName{
return name;
}
//格式
public 属性类型 getXxx(){
//加入数据验证逻辑
return 属性;
}
注意事项
- 构造器可以绕过封装,但将set方法写入构造器中即可避免这种情况
3 包和访问限定符
包和访问限定符一齐使用有利于实现封装和对类的管理,包和访问限定符内容可见另一篇博客:类与对象
本文的主要目的是充当学习笔记,同时强化学习效果,且兼有分享所学知识之意,欢迎批评指正。