一、正常定义一个类型
int age;
我们有两种选择:
1.自己可以设置和获取
private int age;
2.外人和自己都可以设置和获取
public int age;
那我们会有个问题:
如果我只希望自己能设置,但不希望自己获取;
或者,希望自己和外人都能设置,但不能获取;
或者,希望自己能获取,但不能设置
或者,希望自己和外人都能获取,但不能设置
这时候就做不到了。
如果我希望大于等于0的数可以设置,小于0的数不允许设置
这时候就做不到了。
总结:属性是对这个数据做更具体的规划。
二、属性的使用
//定义一个数据
private int age;
//对定义的数据做描述
private int Age { get; set; }
仿照下面的写法,把age的第一个字母大写,写成Age,就说明,下面这部分是在对age做说明。
这已经是约定俗成了,所以,如果你懒一点,你可以不写private int age;它会自己默认给你建一个。那么你只写下面就可以。
//对定义的数据做描述
private int Age { get; set; }
●private意思:只有自己能用,还是所有人都能用
●get意思:这个数据可以获取
例(正确):
private int Age { get;set;} void Main() { int a = Age; }
例(报错):
private int Age { set; } void Main() { int a = Age; }
报错会告诉你,我没有给你获取的权限,你不能获取。
●set意思:这个数据可以设置
例(正确):
private int Age {get;set;} void Main() { Age=5; }
例(报错):
private int Age { get;} void Main() { Age =5 ; }
报错会告诉你,我没有给你获取的权限,你不能设置。
这个get和set是默认public,如果有需要,还可以设置为private
public int Age { private get; set; }
这句的意思就是:虽然Age所有人都能设置,但只有自己能获取
三、属性的数值限制
如果我希望大于等于0的数可以设置,小于0的数不允许设置
int Age {
//获取的时候,就把Age给它
get { return Age; }
//设置的时候
set
{
//value就是传递进来的值叫value
//如果value>=0,就把value设置给Age,反之不管
if (value >= 0)
{
Age = value;
}
else {
return;
};
}
}
四、总结
这样我们就能对我们设置的数据,做一些限制,不是谁想用就能用,不是想设置什么就能设置什么!