class Person
{
private int age;
public int Age { set; get; }//这个属性是一个自动属性 它不是封装age这个字段的,在编译的时候如果程序员写了自动属性,那么微软它会自动的生成那么一个字段 那么你这个自动属性就是封装微软自动生成的那个字段
public Person(int age)
{
this.Age = age;
}
}
如果你是还不太理解字段属性,这样首先说一下private是私有的访问级别,那么创建这个Person类的对象的时候,是无法访问到private所修饰的成员的,那为什么要将字段修饰成private 然后又写一个public公有的属性呢,是因为我们不想有一些非法的数值赋值给字段(比如说age,年龄不能为负数),(那么如果将字段修饰为private),那么我们怎么给字段赋值?这样就可以用到属性了,我们就可以用属性进行判断过滤,然后将一个正常符合逻辑的值赋值给字段(比如在属性的set访问器当中我们if判断(age>=0)?age=value:age=0;),将这个属性公开出来(将属性修饰为public),这样就实现了对该字段的封装.其实属性的本质就是两个方法.
希望对你有帮助啊! |