- 程序设计要追求"高内聚,低耦合”。
- 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;
- 低耦合:仅暴露少量的方法给外部使用。
- 封装(数据的隐藏):通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。封装主要体现属性的私有,还有就是get/set方法。
- 封装的意义:
- 提高程序的安全性,保护数据;
- 隐藏代码的实现细节,防止程序被篡改;
- 统一程序的接口;
- 增加系统的可维护性。
- 属性私有:
通过private关键字将属性私有化,这样外部类就无法访问私有化后的属性了,这样就做到了对数据的保护。
注意:权限修饰符
以下是几个权限修饰符的权限范围:
private:私有的,权限修饰符,可以修饰成员变量和成员方法,被private修饰的成员只能在本类中访问
- 实例:
package oop.Demo04;
public class Student {
//属性设为私有的
private String name;
private int id;
private char sex;
}
//----------------------------------------------------------------------------
package oop.Demo04;
public class Demo04 {
public static void main(String[] args) {
Student student = new Student();
student.name//这时student.name会报错,如下图--“‘name’在‘oop.Demo04’中具有私有访问权限”,这样就不可以访问这些属性。
}
}
- get/set:
属性设为私有后,其他类无法再获取,如果想用这些属性,就可以使用get/set来使用。
- 需要提供一些public的get、set方法。
- 可以用Alt+Insert的快捷键使用get、set方法
实例:
public class Student {
//属性设为私有的
private String name;
private int id;
private char sex;
//提供一些public的get、set方法
//get 获取这个数据
public String getName(){
return this.name;
}
//set 给这个数据设置值
public void setName(String name) {
this.name = name;
}
//可以用Alt+Insert的快捷键使用get、set方法
}
//----------------------------------------------------------------------------
public class Demo04 {
public static void main(String[] args) {
Student student = new Student();
student.setName("小明");
System.out.println(student.getName());
}
}
结果: