封装是OOP的四个基本概念之一。其他三个是继承、多态性和抽象。
Java中的封装是一种将数据(变量)和作用于数据(方法)的代码包装在一起作为一个单元的机制。在封装中,类的变量将对其他类隐藏,并且只能通过其当前类的方法访问,因此,它也称为数据隐藏。
下面是一个示例,演示了如何在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类的实例变量,通常,这些方法称为getter和setter。因此,任何想要访问变量的类都应该通过这些getter和setter来访问它们。
可以使用以下程序访问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");
</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"Name : "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> encap</span><span class="pun">.</span><span class="pln">getName</span><span class="pun">()</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Age : "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> encap</span><span class="pun">.</span><span class="pln">getAge</span><span class="pun">());</span><span class="pln">
}
}
这将产生以下输出-
Name : James Age : 20