5.封装
- 该露的露,该藏的藏
- 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
- 封装(数据的隐藏)
- 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
- 记住这句话就够了: 属性私有,get/set
例子:银行窗口,顾客可以取钱,存钱,银行相当于系统,银行提供给顾客窗口让顾客可以存钱取钱,但是顾客看不到具体的操作。也就是说这个操作过程被封装了,银行提供接口方法给顾客存钱取钱。
eg:
package com.wang.oop.object;
// private : 私有
public class Student02 {
//属性私有
private String name; //名字
private int age; //年龄
private char sex; //性别
//提供一些可以操控这些属性的方法(因为属性被私有了)
//提供一下public的 get/set方法
//set 给这个属性设置值
public void setName(String name){
this.name = name;
}
//get 获得这个属性的值
public String getName(){
return this.name;
}
public int getAge() {
return age;
}
//进行简单的数据校验
public void setAge(int age) {
if (age > 120 || age < 0){ //如果一个人的年龄大于120岁或者小于0岁,则设置为3岁
this.age = 3;
}else this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
package com.wang.oop.object;
public class Application {
public static void main(String[] args) {
/*
封装的作用
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加
*/
Student02 student02 = new Student02();
student02.setName("wang");
System.out.println(student02.getName()); //输出结果 wang
student02.setAge(11);
System.out.println(student02.getAge()); //输出结果 11
student02.setAge(-10);
System.out.println(student02.getAge()); //输出结果 3
}
}