首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

打包

2012-08-29 
封装封装(Encapsulation)是OOP的一大重要特性,为什么要进行封装呢?如何进行封装呢?站在用户的立场考虑,有

封装
     封装(Encapsulation)是OOP的一大重要特性,为什么要进行封装呢?如何进行封装呢?站在用户的立场考虑,有些则需要见,有些则不需要见。而对那些要见得东西,我们要考虑用户思考、用户体验、用户习惯,总之,一切为了用户,毕竟,他们是我们的“衣食父母”。相反,对于那些不需要见得东西,我们可以设计成“黑盒子”,至于里面是些什么以及里面是如何工作的,用户不关心。而这样的“黑盒子”,就是所谓的封装。

     实际上,我喜欢把封装当做一种思想来看待,在这种思想的指导下,一是可以对数据、逻辑业务等进行安保;二是便于可操控人员(架构师、开发者等)的管理;三是符合用户使用心理(简单、易用等)。Java语言中通过访问权限实现对数据成员和方法的封装,若是不需要见的东西可以设定为私有化,即用关键字private修饰;若是要见得东西就设定为公有化,即用关键字public修饰。为了方便理解,阅读如下代码:

/** *封装思想的展示 */public class Customer { /**  *方法描述:默认构造方法  *输入参数:无  *返回类型:无  */ public Customer() { } /**  *方法描述:构造方法  *输入参数:String name,int id)  *返回类型:无  */ public Customer(String name,int id) {  this.name = name;  this.id = id; } /**  *方法描述:设置属性名字的方法  *输入参数:String name  *返回类型: void  */ public void setName(String name) {  this.name = name; } /**  *方法描述:获取属性名字的方法  *输入参数:无  *返回类型: String  */ public String getName() {  return (this.name); }  /**  *方法描述:设置属性号码的方法  *输入参数:int id   *返回类型: void  */ public void setId(int id) {  this.id = id; }  /**  *方法描述:获取属性号码的方法  *输入参数:无  *返回类型: int   */ public int getId() {  return (this.id); }  /**  *方法描述:主方法  *输入参数:String[] args  *返回类型: void  */ public static void main(String[] args) {  Customer tom = new Customer();  tom.setName("Tom");  tom.setId(1);  Customer jack = new Customer("Jack",2);  System.out.println("第一个客户的信息:");  System.out.println("name=" + tom.getName() + "\tid=" + tom.getId());  System.out.println("第二个客户的信息:");  System.out.println("name=" + jack.getName() + "\tid=" + jack.getId());   } //封装的数据成员,只能在该类中被使用,通过编写设置和获取方法来控制 private String name; private int id;}

运行结果如下所示:

打包
    总结:

    1.封装不仅是OOP的重要特性之一,也是OOD的重要思想之一。

    2.不管是文章所提到的“见与不见”,还是设计理念中的“开放与关闭”原则,实则都涉及到封装。

    3.“站得高,看得远”,不仅从编程角度,更要从设计的角度认识封装。

1楼heiyandoudou1前天 18:11
学习。谢谢!!!
Re: wangloveall前天 19:52
回复heiyandoudou1n谢谢阅读。

热点排行