黑马程序员技术交流社区

标题: 面向对象中,属性中get和set该怎么理解? [打印本页]

作者: 赵贺景    时间: 2014-4-29 21:47
标题: 面向对象中,属性中get和set该怎么理解?
本帖最后由 赵贺景 于 2014-4-29 22:40 编辑

public int Age
{
get
{
value=age;
}
set
{
if(age>0)
{
Age=value;
}
else
{
value=0;
}
}
}
怎么样比较容易理解 读取 和赋值的情况?

作者: 许庭洲    时间: 2014-4-29 21:58
1. 只有set访问器,表明属性的值只能进行设置而不能读出;
2. 只有get访问器,表明属性的值是只读的,不能改写;
3. 同时具有set访问器和get访问器,表明属性的值的读写都是允许的。属性看似字段,不是字段,可以进行非法值控制,可以设置只读。
作者: Darkhorse′Xa    时间: 2014-4-29 22:06

属性就是对字段的封装,因为我们如果直接对字段赋值,那么任何非法值都是可以输入的.
举个例子:如age,年龄是不能为负数的,但是仍然可以去age字段赋值.那么我们就可以使用属性,在set访问当中筛选非法的数据,然后将正确的数值赋值给字段.
其实get和set两个访问器就是两个方法,set方法是对字段赋值,get方法是返回字段的值给调用者.
希望对你有帮助:

  1. <p>        private string name;
  2.         public void SetName(string value)
  3.         {
  4.             name = value;
  5.         }
  6.         public string GetName()
  7.         {
  8.             return name;
  9.         }</p>
复制代码



作者: 赵贺景    时间: 2014-4-29 22:17
受教了,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2