首页 > 代码库 > OOP 2014年6月8日09:45:33

OOP 2014年6月8日09:45:33

 1     /// <summary>
 2     /// 字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。
 3     /// 访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。
 4     /// public:公共成员,完全公开,没有访问限制;
 5     /// private:默认级别。私有成员, 在类的内部才可以访问;
 6     /// internal:当前程序集内可以访问;
 7     /// protected:保护成员,该类内部和继承类中可以访问。
 8     /// </summary>
 9     class Person
10     {
11         //private字段
12         private int height;
13         //public属性//属性不会存储值,而是由相应的字段保存值(height=Value);
14         public int Height
15         {
16             get { return height; }//只有get是只读属性
17             set { height = value; }//只有set是只写属性,不常见
18         }
19 
20         //【1】private属性和public字段的区别是什么?
21 
22         //private属性属性看似字段、不是字段。可以设置只读,可以对设值、取值的过程进行非法值控制。比如年龄禁止设值负数。
23         //而字段则不能进行这样的设置。
24 
25         //【2】调用set方法为一个属性设值,然后用get方法读取出来的值一定是set进去的值吗?
26         
27         //虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的。
28         //极端的例子:
29         public int Age { get { return 100; } set { } }
30 
31         //Person p = new Person();
32         //p.Age = 30;
33         //p.Age++;
34         //Console.Write(p.Age);//输出100
35 
36         //加分的补充回答:用reflector反编译可以看出,属性内部本质上就是set_***、get_***方法。
37     }