码迷,mamicode.com
首页 > Windows程序 > 详细

C# 面向对象之封装

时间:2017-05-17 13:50:32      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:实例化   面向对象   隐藏   new   on()   erro   text   ext   protect   

封装是指将类的内部数据隐藏起来不让对象实例直接对其操作,C#中提供了属性机制来对类内部的状态进行操作。

在C#中封装可以通过public、private、protected和internal等关键字来体现。

为什么要对类的内部进行封装呢?

例:

public class Person

{

     public string name;

     public int     age;

}

如果我实例化上面这个类

Person p=new Person()

那么我给age(年龄)赋值为负数,这显然不符合业务逻辑,人的年龄可能为负数吗?

p.age="-1"

使用封装后

public class Person

{

     private string name;

   public string Name

  {

    get{return name;}

            set{name=value;}

  }

     private int     age;

   public string Age

  {

    get{return age;}

            set{

                   if(value>0)

      {

        age=value;  //这里对年龄进行控制,年龄必须要大于0才能赋值.那么年龄为-1就不能赋值

      }

      else

      {

        throw(new ArgumentException("error", value,"年龄不能为负数"));//这里会抛出异常

      }

     }

  }

}

封装后对象实例只能对属性进行操作,属性中可以写下自己的逻辑来控制。

 

C# 面向对象之封装

标签:实例化   面向对象   隐藏   new   on()   erro   text   ext   protect   

原文地址:http://www.cnblogs.com/lbonet/p/6866829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!