成员访问级别和属性
字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。
几个访问级别:public(任何地方都可以访问);private(默认级别。只能由本类中的成员访问)。还有internal、protected两个级别。
永远不要把字段设置成public。
快速定义属性方法:将光标定位到 字段名上,同时按下:CTRL+R+E。可以快速定义 字段的属性。
惯用法:属性开头字母大写,字段开头字母小写。
只用set或者只用get就可以定义只读或者只写属性(只写的不常见)。
可以为set、get设置访问级别。
允许外部访问的值一定要声明为属性。
字段和属性的区别是什么?属性看似字段、不是字段,可以进行非法值控制,可以设置只读。
class Program { static void Main(string[] args) { Person p = new Person(); p.Age = 18;//将18传递给value p.Name("铁锤");//将字符串"铁锤"传递给string a。 p.Say(); Console.ReadKey(); } } class Person { private int age;//字段,名称为小写。一般所有字段全部设置成private局部访问。 private string name; public int Age//属性,名称首字母大写,一般所有属性设置成public全局访问。可以只有set或者get. { set//设置值 { if (value <100)//判断传递过来的值是否小于100 { this.age = value;//this表示这个,可省略不写。value表示传递过来的值。 } } get//返回值 { return this.age;//返回去的值。 } } public string Name(string a)//这个是有返回值的函数。 { if (a != "王钢蛋")//判断传递过来的值是否为:王钢蛋。 { name = a;//不为王钢蛋,则执行。 return name;//返回名字。 } return "我不叫:王钢蛋。";//否则执行这句。 } public void Say()//函数(或叫方法)和函数用法相同。可以有返回值,也可以无返回值。 { Console.WriteLine("你好!我叫:{0},我今年{1}岁了。", this.name, this.Age); } }
输出结果: