Chinaunix首页 | 论坛 | 博客
  • 博客访问: 382931
  • 博文数量: 61
  • 博客积分: 1546
  • 博客等级: 中尉
  • 技术积分: 708
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 20:07
文章分类

全部博文(61)

文章存档

2011年(61)

分类: 嵌入式

2011-04-26 21:20:38

在类中有时候要使用属性还是方法,没有硬性规定,但有以下约定:
1.客户机代码应该能读取字段的值,最好不要使用只写属性,如,应该使用SetPassword()方法,而不是Password只写属性
2.读取一个值不应花太长时间,实际上,如果是一个属性,通常表示读取过程花的时间相对较短
3.读取某个值不应有任何不希望的负面效应。设置属性的值,不应有与该属性不直接相关的负面效应
4.应可以用任何顺序设置属性
5.顺序读取属性应该有相同的效果。如果属性的值可能会出现预料不到的改变,应把它编写为一个方法,如监视汽车运动的类中,把speed编写成属性就不是一种好的方式,应使用GetSpeed(),另一方面,应把Weight和EngineSize编写为属性,因为对于给定的对象,它们是不会改变的

对于字段,用法非常简单。字段应总是私有的,但在某些情况下可以把常量或只读字段设置为公有,原因是如果把字段设置为公有,就可以在以后扩展或修改类

今天学到了一点属性的新知识,就是可以对属性值进行修改,如有属性
  1. public int myproperty
  2. {
  3.     get
  4.   {
  5.          return myfield;
  6.   }
  7.     set
  8.   {
  9.          myfield = value;
  10.     }
  11. }
  12. 则可以使用xx.mypeoperty++;
  13. 则myfield的值增加1

  1. 允许给属性的get和set设置不同的访问修饰符,如public的get访问权限和private或protected的set访问权限,这有助于控制属性的设置方式。

  2. 当没有任何访问修饰符时,是指具有属性的访问级别。

  3. 在get和set中,必须有一个具备属性的访问级别,如属性为public,而set为private,get为protected,则会产生一个编译错误。

阅读(1501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~