属性:
作用: 就是保护字段,对字段的赋值和取值进行限定,此时,给字段加上属性之后,在外界只需要访问属性即可,这样做,即保护了字段中的数据,又可以对赋值进行过滤。
属性的本质:就是一个两个方法,一个get(取值)和set(赋值)与js中的Object.defineProperty类似。
解释:
下边给字段_age加上属性,外界过可通过Age属性(new Person().Age)来间接的访问 _age字段(此时在外界也直接访问不到_age字段了,因为前边加上了private修饰符),访问属性时,会执行get方法,我们在get方法里边会直接返回_age(当然你也可以修饰、处理一下_age字段再返回);当外界赋值时,会执行set方法,下边value就是外界给属性赋的值,我们在里边加了一层判断,当赋值小于0时,会强制给value值改为1,之后在赋值给_age字段。
(注意:下边private是目前我们使用的第二的属性修饰符,私有的,下边有解释)
class Person
{
// 当给属性赋值时,会执行set方法,当输出属性值时,会执行get方法
private int _age;
public int Age
{
get { return _age; }
set {
if (value < 0)
{
value = 1;
}
_age = value;
}
}
public void SEE()
{
Console.WriteLine($"今年{this.Age}岁");
Console.ReadLine();
}
}
访问修饰符:
public: 公共的,在哪都能访问到
private:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了(补充:在类中,不写访问修饰符,默认就是private)。
英文单词:
Field:字段
Methods:方法
properties:属性