public class Person
{
         private string P_name="张三";   
private int P_age=12;   
public void Display()   
  {
              Console.WriteLine("姓名:{0},年龄:{1}",P_name,P_age);
  }
public string Name    
{
                get
        {
                   return  P_name;
                  }
       set
        {
                   P_name=value;
                  }
               
public int Age    
{
                get
        {
                    return  P_age;
                  }
       set
         {
                     P_age=value;
                   }
}
}
我想问,既然,可以通过属性获得私有变量P_name的值,为什么不直接设置成public呢,属性岂不是多余吗?

解决方案 »

  1.   

    get、set 是机制、同是可以添加其他处理的你一个公有字段可以吗?
      

  2.   

    通过GET SET访问器 可以设置属性 为只读或只写  或既可读又可写
      

  3.   

    就以你这个例子而言,如果我要设置一个人的年龄是个负数,那你要在哪里提示出错信息?
    如果你不用属性,而是把字段设置为public,那就只能是在客户端设置的时候进行提示,也就意味着你每次赋值都要做一次判断,但如果封装成属性,则可以直接在属性里进行提示:public int Age   
    {
      get
    {
      return P_age;
      }
    set
    {
        if(value < 0)
        {
            Console.WriteLine("年龄不能为负数");
        }
        else
        {
             P_age=value;
         }
      }
      

  4.   

    从java抄过来的,唉,JavaBean啊