zoukankan      html  css  js  c++  java
  • C# 面向对象之封装

    封装是指将类的内部数据隐藏起来不让对象实例直接对其操作,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,"年龄不能为负数"));//这里会抛出异常

          }

         }

      }

    }

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

  • 相关阅读:
    Sqli-labs less 25a
    Sqli-labs less 26
    Sqli-labs less 26a
    Sqli-labs less 27
    Sqli-labs less 27a
    Sqli-labs less 28
    Sqli-labs less 28a
    Python3之sys模块
    Python3之os模块
    Python3之XML模块
  • 原文地址:https://www.cnblogs.com/lbonet/p/6866829.html
Copyright © 2011-2022 走看看