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 }
OOP 2014年6月8日09:45:33,布布扣,bubuko.com
时间: 2024-11-07 16:15:49