A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏雪锐 黑马帝   /  2011-11-4 19:42  /  2257 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

属性与字段有何区别?

3 个回复

倒序浏览
本帖最后由 陈涛 于 2011-11-4 21:10 编辑

1.属性可以被其它类访问,而大部分字段不能直接访问。
2.属性可以对接收的数据范围作限定,而字段不能。(也就是增加了数据的安全性)
例如 验证一个人的年龄, 如果你传的是一个-1 如果用字段的话也就是返回-1, 如果用属性的话,就可以加以验证,
年龄肯定不可能是负数阿,  那不成怪物了么?
  1. int i; //字段   
  2. public int I //属性   
  3. {      
  4.   get { return i > 0 ? i : 0;
  5. }      
  6. set { i = value; }   
  7. }
复制代码
字段只有声明 赋值, 而属性可以有其他操作,就比如判断。

点评

属性就是带有get,set访问器呀,这当然可以什么设成只读或只写啦,还有验证数据的正确性啦,而字段就是在类中声明一个什么什么。  发表于 2011-11-5 09:52
回复 使用道具 举报
属性可以设置成只读或只写,操作起来比字段方便,而且封装字段以后,可以提高安全性
回复 使用道具 举报
属性就是封装了字段,安全性比较高,可以提供数据验证等功能。写程序时一般是操作属性,很少有接操作字段的。
例如你要写一个与数据库实体层相关的类,该类对应着有数据库的字段,你不可能直接操作该类的字段进行赋值等操作,如果数据非法呢还能赋值吗? 而是用属性进行数据验证。提高了数据的安全性。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马