用属性来实现封装 属性是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操作。它省略了读操作。
用属性来实现封装
最新推荐文章于 2023-07-08 15:18:20 发布