用属性来实现封装
来源:互联网 发布:拓普康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
- 用属性来实现封装
- BaseAdapter的封装来实现模块化开发
- Linux: 通过SUID权限来实现“封装”
- mybatis通过association来封装自己的对象属性
- Java模拟闭包实现属性封装
- 自定义属性 来实现 ProgressBar 圆形进度条
- 属性封装
- 属性封装
- 通过依赖属性来实现自定义控件的属性
- ArrayList封装对象实现多属性同一循环输出
- ArrayList封装对象实现多属性同一循环输出
- Android自定义控件封装之自定义属性的实现
- 链式编程,iOS简单封装属性字符串,实现富文本.
- C#字段为什么用属性封装?
- 关于动画的切换可以用UIImageView中的属性来实现。
- 从零开始学C++之数据封装与抽象:分别用C和C++来实现一个链栈
- 从零开始学C++之数据封装与抽象:分别用C和C++来实现一个链栈
- 利用runtime动态增加属性来封装一个全局调用loading效果
- 利用StretchDIBits、CreateDIBSection、CreateDIBitmap三种方法显示内存位图
- 优化jsj脚本,防止浏览器卡死
- java使用poi从数据库导出Excel
- struts2 xml配置总结
- progressBar详解
- 用属性来实现封装
- java框架
- Win10 Chrome 在DPI缩放下导致界面放大问题 解决方案
- 结构化思维
- svn revert merge
- Groovy 生成xml文件(使用MarkupBuilder)
- 背景建模总结
- Shell中脚本变量和函数变量的作用域
- DPI 深度报文检测