c#中什么是封装?是不是用private修饰的就叫封装啊?

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:17:14

关于这个问题,我想举一个例子:

lz如果你接触过老的面向过程的编程,
以前封装性很差的程序是这样的
比如用C写一套处理链表的程序,他的数据和函数是分开的
数据保存在一个内存区域里,所有相关的函数,比如增加节点啊,减少节点什么的都是直接操作这个内存区域的指针
比如这样
LIST *p=.....;//开辟空间
AddNode(p,...)//这样来操作
带来了很多额外的不安全因素,因为谁都可以操作这个指针
如果你写的是一个第三方库,那么别人使用的时候完全不在你的控制之下

现在的面向对象程序则不然,
将数据和与之对应的操作(也就是方法)绑定在一个块中
比如在C#中
ArrayList list=new ArrayList();
list.add(...);
这样所有的内部结构对于外部用户都是透明的,不用管内部实现和结构,如何储存数据,都不用管内部实现(一些数据程序成员的访问权限是private protected就是为了数据安全性)
而原先的方式,数据是非封装的,因为外部程序可以随便更改数据,不利于程序的安全运行

以上提到的就属于面向对象封装性的意义,不过实际的好处还不只这些
lz有问题,欢迎给我发消息,我们可以具体讨论一下

private string title;
public string Title
{
get{return title;} 获取这个值。
set{title=value;} 设置这个值
}

这个形式叫做封装。

在类外部 只能调用Tile而不能访问title 但是可以通过Title来访问title
这里可以给set里面加入条件

封装:将属性私有化,然后提供公有的访问
封装需要用到Get Set方法