封装
简介
封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(方法),才能对数据进行操作。
Java核心技术的解释 —— 将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式(比如调用Math.random,不必了解如何具体实现)。对象中的数据称为实例字段(比如String name等),操作数据的过程称为方法。实现封装的关键在于,绝对不能让类中的方法直接访问其他类的实例字段。
好处
1. 隐藏实现细节,使用者只需要调用即可。类似的,电视机也是一种封装,用户想要开机等操作,只需要在遥控器上按一下就可以了,不用知道电视机内部进行的复杂操作。
2. 可以对要进行赋值的数据进行检验,保证安全合理。
int age = 12000; //这就是没有封装的坏处,没有对赋值的数据进行检验
封装步骤
1. 将属性进行私有化 private,这样就不能直接修改属性了。
2. 提供一个公共的(public) set方法,用于检验数据并给属性赋值。
public void setXxx(类型 参数名){
//加入数据验证的业务逻辑
属性 = 参数名;
}
3. 提供一个公共的 get方法,用于获取属性的值。
public 数据类型 getXxx(){
return Xxx;
}
封装与构造器
为了防止调用构造器绕过set函数,我们可以把set函数写在构造器中。
public Person(String name,int age,double salary){
this.setName(name);
this.setAge(age);
this.setSalary(salary);
} //在构造器中写入封装方法