第1个回答 2008-09-28
我给你举几个例子:
一个用户有用户名,密码,权限等,把这些属性放在一个用户里就等于是封装.看个实际一点的例子,一个人有眼睛,鼻子,嘴巴,等面貌特征,用OOP的思想理解就是,这里的人相当是一个对象,眼睛等相当与是这个对象的属性,我们所说的封装就是指把这些眼睛,鼻子,嘴巴等属性放在一个对象里即为封装.(当然这些属性都是特定的,你不能说我把猪脚也放进这个对象里去,那么这就违背了封装的概念).
概念:把一系列具有相同特征的属性放在一个对象,组成的这个对象的过程就叫做封装.
以后你会接触到javabean,我先给你看个实际的应用程序例子:
//用户对象的属性
private String username; //用户名属性
private String password; //密码属性
//实力一个用户对象
User user = new User(); //用户对象user
//调用setUsername()方法传一个admin进去
user.setUsername("admin");
user.setPassword("123456");
把用户名为admin和密码为123456放进这个 User对象里去.这就是一个封装的过程.
这里的setUsername()方法相当与给一个变量赋值.比如上面申明了一个String型的username变量,通过调用serUsername()方法就等于
String username = "admin";
这个方法的实现如下:
public void setUsername(String uname)
{
this.username = uname;
}
以后你会经常和这代码打交道的,这只是简单给你描述下在程序里的封装概念.还有不懂的地方MSN留言...
第2个回答 推荐于2019-07-02
关于这个问题,我想举一个例子:
lz如果你接触过老的面向过程的编程,
以前封装性很差的程序是这样的
比如用C写一套处理链表的程序,他的数据和函数是分开的
数据保存在一个内存区域里,所有相关的函数,比如增加节点啊,减少节点什么的都是直接操作这个内存区域的指针
比如这样
LIST *p=.....;//开辟空间
AddNode(p,...)//这样来操作
带来了很多额外的不安全因素,因为谁都可以操作这个指针
如果你写的是一个第三方库,那么别人使用的时候完全不在你的控制之下
现在的面向对象程序则不然,
将数据和与之对应的操作(也就是方法)绑定在一个块中
比如在Java中
LinkedList list=new LinkedList();
list.add(...);
这样所有的内部结构对于外部用户都是透明的,不用管内部实现和结构,如何储存数据,都不用管内部实现(一些数据程序成员的访问权限是private protected就是为了数据安全性)
而原先的方式,数据是非封装的,因为外部程序可以随便更改数据,不利于程序的安全运行
以上提到的就属于面向对象封装性的意义,不过实际的好处还不只这些
lz有问题,欢迎给我发消息,我们可以具体讨论一下本回答被提问者采纳