面向对象的特性之一:封装
在学习封装之前先了解高内聚和低耦合
高内聚:类的内部数据操作细节自己完成,外部不得干预
低耦合:对外仅暴露少量的方法用于调用去使用
简单理解:要实现高内聚就要进行封装,封装从字面意思来看就是将一个东西进行封装起来,外部不能查看到这个东西内部的情况。低耦合就是将这个封装的东西对外提供简单的入口,只有通过这个接口才能访问这个东西里面的内容,对外仅暴露少量的方法用于调用去使用。【举例:一个电视机,我们是不知道电视机里面的结构的,我们可以通过遥控器来操作它,这就是一个简单的封装的例子】
- 封装的好处?
隐藏对象内部的复杂性,只对外公开简单使用接口,便于外界使用,从而提高系统的可扩展性,可维护性,安全性,通俗来说就是该暴露的暴露该隐藏的隐藏。 - 封装就涉及到访问修饰符,下面是访问修饰符的权限
访问修饰符 本类 同包 不同包的子类 同一个工程下
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
1、封装的步骤
①使用private 关键字对类当中的属性进行封装
②提供对外的方法,用于调用去访问属性(通常对外的方法为setter和getter)
2、setter和getter方法进行解析
setter是用来修改数据的,实际上就是属性的赋值,无返回值;getter方法是用来获取数据的,有返回值。
例如:
public class Person {
//使用private 关键字对类当中的属性进行封装
private String name;
private int age;
//获取name属性值的方法
public String getName() {
return name;
}
/*
* 因为类的属性name被private修饰,所以只能在本类中访问,所以此处的name可以使用,
* 将proName赋值给name,这样外部类就可以通过调用这个方法来访问Person类里面的属性,
* 并进行修改
*/
//给name属性赋值的方法
public void setName(String proName) {
name = proName;
}
//获取age属性值的方法
public int getAge() {
return age;
}
//给age属性赋值的方法
public void setAge(int proAge) {
age = proAge;
}
}