封装

来源:互联网 发布:乐知英语的公司在哪 编辑:程序博客网 时间:2024/04/24 21:30

1、

简介:可以把程序按某种规则分成很多“块”,块与块之间可能会有联系,每个块都有一个可变部分和一个稳定的部分。我们需要把可变的部分和稳定的部分分离出来,将稳定的部分暴露给其他块,而将可变的部分隐藏起来,以便于随时可以让它修改。这项工作就是封装。

 

2、意义:封装的意义在于保护或者防止代码(数据)被我们无意中破坏。相比我们将数据在程序中定义为公用的(public)我们将它定义为私有的(private)在很多方面会更好。私有的数据可以用两种方式来间接的控制。第一种方法:我们使用传统的存、取方法。第二种方法:属性(property)。目标就是在使用数据的同时不能使它受到任何的破坏。

3、

好处:一、使用者只需要了解如何通过类的接口使用类,而不关心类的内部数据结构和数据组织方法。

二、高内聚,低耦合一直是我们所追求的,用好封装恰恰可以减少耦合。

其三:只要对外接口不改变,可以任意修改内部实现,这个可以很好的应对变化  

其四:类具有了简洁清晰的对外接口,降低了使用者的学习过程

 

 用传统的读、写方法封装    让我们来看一个例子有一个类Department,为了操纵这个类中的数据(string departname)我们定义了一个读方法和一个写方法。

 

 using system;  public class Department

{

 

 private string departname; ....... // 读方法 

public string GetDepartname()

 

return departname;

} //写方法 

public void SetDepartname( string a) { 

departname=a;

 }

通过上面的方法,我们可以保护私有数据不被外部程序所破坏。现在我们使用两个不同的方法来写和读数据

public static int Main(string[] args)

 

Department d = new Department();

d.SetDepartname("ELECTRONICS"); 

Console.WriteLine("The Department is :"+d.GetDepartname());

return 0;

在上面的例子中,我们不能直接访问类Department的实例d中的私有数据(string departname),我们只能通过这两个方法来访问。  

 

用属性来实现封装    属性是c#引入的一种语言成分,只有很少的语言支持属性。通过对属性的读和写来保护类中的域。第一种方法体身也是一种好的方式,但用属性来实现封装会更方便。 现在我们来看一个例子:

using system; 

public class Department

 { 

private string departname;

public string Departname

{

get {  return departname; }

set {  departname=value; }

}

public class Departmentmain {

 

public static int Main(string[] args)

Department d= new Department();

d.departname="Communication";

0 0
原创粉丝点击