封装是四个基本OOP概念之一。 其他三个分别是:继承,多态和抽象。
Java中的封装是将数据(变量)和作用于数据(方法)的代码作为一个单元包装在一起的机制。 在封装中,类的变量将从其他类隐藏,并且只能通过当前类的方法访问。 因此,它也被称为数据隐藏。
在Java中实现封装 -
- 将类的变量声明为
private
。 - 提供公共
setter
和getter
方法来修改和获取变量的值。
示例
以下示例演示了如何在Java中实现封装 -
/* 文件名称 : Student.java */
public class Student {
private String name;
private String idNum;
private int age;
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getIdNum() {
return idNum;
}
public void setAge(int newAge) {
age = newAge;
}
public void setName(String newName) {
name = newName;
}
public void setIdNum(String newId) {
idNum = newId;
}
}
public setXXX()
和getXXX()
方法是Student
类的实例变量的访问点。 通常,这些方法称为getter
和setter
。 因此,想要访问变量的类都应该通过这些getter
和setter
访问它们。
使用以下程序访问Student
类的变量 -
/* 文件 : RunEncap.java */
public class RunEncap {
public static void main(String args[]) {
Student stu = new Student();
stu.setName("Maxsu");
stu.setAge(20);
stu.setIdNum("10086");
System.out.print("Name : " + stu.getName() + ", Age : " + stu.getAge());
}
}
执行上面示例代码,得到以下结果 -
Name : Maxsu, Age : 20
封装的好处
- 类的字段可以是只读的或只写的。
- 类可以完全控制字段中存储的内容。