用属性来实现封装

来源:互联网 发布:拓普康332n软件 编辑:程序博客网 时间:2024/05/22 08:25
用属性来实现封装属性是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";Console.WriteLine("The Department is :{0}",d.Departname);return 0;}}通过上面的例子,我们可以看到如何通过属性来实现封装。属性具有两种操作get和set。Get用来返回属性域的值。Set通过value这个变量来给属性域赋值。属性可以设为只读的(read-only)。这只需属性只具有一个set操作。只读属性using system;public class ReadDepartment{private string departname;public ReadDepartment(string avalue){departname=avalue;}public string Departname{get{return departname;}}}public class ReadDepartmain{public static int Main(string[] args){ReadDepartment d= new ReadDepartment("COMPUTERSCIENCE");Console.WriteLine("The Department is: {0}",d.Departname);return 0;}}在上面的例子中我们看到了如何来实现一个只读的属性。类ReadDepartment拥有一个Departname属性只实现了get操作。它省略了写操作。这个特别的类拥有一个构造器,用来接受一个字符串变量。类ReadDepartmain中的Main方法创建了一个新的对象d。对像d的实例使用了类ReadDepartment带有一个字符串参数的构造器。因为上面的属性是只读的,所以我们不给给域departname赋值并且我们只侧读取此域中的值。当然属性也可以是只写的(write-only),这只需属性只具有一个get操作。只写属性using system;public class WriteDepartment{private string departname;public string Departname{set{departname=value;Console.WriteLine("The Department is :{0}",departname);}}}public class WriteDepartmain{public static int Main(string[] args){WriteDepartment d= new WriteDepartment();d.departname="COMPUTERSCIENCE";return 0;}}在上面的例子中我们看到了如何来实现一个只写的属性。类WriteDepartment拥有一个Departname属性只实现了set操作。它省略了读操作。
1 0
原创粉丝点击