Java 封装
封装 是面向对象编程的四个基本概念之一。另外三个概念是继承、多态和抽象。
在Java中,封装是将数据(变量)和对数据进行操作的代码(方法)封装在一起作为一个单元的机制。在封装中,类的变量将对其他类隐藏,只能通过其当前类的方法访问。因此,封装也被称为 数据隐藏 。
要实现Java中的封装,需要:
- 将类的变量声明为private。
-
提供公有的setter和getter方法来修改和查看变量的值。
示例
以下是一个演示如何在Java中实现封装的示例:
/* File name : EncapTest.java */
public class EncapTest {
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() 方法是 EncapTest 类实例变量的访问点。通常,这些方法被称为 getters 和 setters。因此,任何想要访问变量的类都应该通过这些 getters 和 setters 来访问。
可以使用以下程序访问 EncapTest 类的变量 –
/* File name : RunEncap.java */
public class RunEncap {
public static void main(String args[]) {
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());
}
}
这将产生以下结果-
输出
Name : James Age : 20
封装的好处
-
类的字段可以设为只读或只写。
-
类可以对其字段中存储的内容拥有完全控制权。