为了增加程序模块的低耦合,在定义某个程序模块的时候,该程序模块内部的属性都是定义为私有,C#的私有属性的定义边界是十分的严苛的,也就是说即便有子类去继承该类,也无法访问该类中的私有字段。如果想要指定只有子类可以访问,那么可以设置属性的权限修饰符为protected。在java中对待私有属性通常会定义相对应的get和set方法,在C#里面使用一种特殊的形式。使用属性对其进行表示,一般有两种方式:
第一种:
private 类型 字段名
public 类型 属性名 {
get{
return x;
}
set{
字段名=value;
}
}
第二种
public 类型 属性名{
get;
set;
}
上面的方式与java的get和set方法十分的类似,使用private将真正的属性进行封闭,然后使用后面的与其对应的结构,也就是内部的get和set将值进行操作,同时我们还可以在get和set的方法内部增加条件对返回数值和修改数值的条件进行限制。
然后就是第二种方式,这种方式会设置一个看不见的私有字段,其实本质和第一种差不多,但是不能在get和set方法里面进行一些值的限制。
我觉得还是第一种方式比较合适,因为它可以帮助我们更加直观的理解字段的封闭,同时以对应字段的属性修改器对其字段值进行修改。