在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将笼统性函式接口的实作细节部份包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必需通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易了解与维护,也增强了程式码的安全性。
实例
让我们来看一个java封装类的例子:
/* 文件名: 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方法是外部类访问该类成员变量的入口。
通常情况下,这些方法被称为getter和setter方法。
因而,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。
通过如下的例子说明EncapTest类的变量怎么被访问:
/* F文件名 : 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
steam 女巫来了 Witch It 躲猫猫 捉迷藏游戏 PC中文正版国区激活码 动作 休闲 独立 联机多人对战游戏 CDKey
steam 双点医院 游戏 双点医院激活码 Two Point Hospital PC简体中文 正版 国区激活码 cdkey 现货 下单秒发
PC中文正版 steam平台 国区 游戏 鬼泣5 Devil May Cry 5 豪华版 新角色维吉尔 Vergil DLC 激活码 CDkey
文明6 文明六文明六季票文明6白金版新纪元季票全DLC迭起兴衰风云变幻激活码文明六PC中文正版Steam游戏key
Steam正版 国区激活码 城市天际线 Cities Skylines 全DLC都市天际线cdk机场工业园区key不夜城cdkey电脑游戏
steam赛博朋克2077 激活码key兑换码2027正版入库中文CDK游戏Cyberpunk