面向对象三大特性: 封装

封装

封装:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。

e.g. 我们可以使用遥控器。 遥控器有多个功能

封装的优点

A.良好的封装能够减少耦合(比如实现界面和逻辑分离)

B.可以让类对外接口不变,内部可以实现自由的修改

C.类具有清晰的对外接口,使用者只需调用,无需关心内部

D.因为封装的类功能相对独立,因此能更好的实现代码复用

E.可保护代码不被无意中破坏,通过私有字段等实现内部。注意:这里的代码保护不是指代码本身的加密,而是对不想外部更改的代码通过私有实现。

 

/// <summary>
/// 狗狗类
/// </summary>
class Dog
{
    string _dogName;
    readonly Color _dogColor=Color.Yellow;
    readonly double _dogPrice = 800.00;
    int _shoutNumber;

    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="dogName"></param>
    public Dog(string dogName)
    {
        DogName = dogName;
    }

    /// <summary>
    /// 狗狗名字 公有属性
    /// </summary>
    public string DogName
    {
        get { return _dogName; }
        set { _dogName = value; }
    }
    /// <summary>
    /// 狗狗颜色 只读属性 (颜色一出生就是这个颜色,这里只提供只读,当然这里不考虑染色)
    /// </summary>
    public  Color DogColor
    {        
        get { return _dogColor;}            
    }
    /// <summary>
    /// 狗狗价格 只读属性 (这是买来的价格,历史是不可以修改的)
    /// </summary>
    public  double DogPrice
    {
        get { return _dogPrice; }
    }

    /// <summary>
    /// 狗叫的次数 (不同的陌生人来,叫的次数不同)
    /// </summary>
    public int  ShoutNumber{
        set{_shoutNumber=value;}
        get { return _shoutNumber; }
    }

    /// <summary>
    /// 狗叫的方法
    /// </summary>
    public void  Shout()
    {
        int i=0;
        string ShoutNum="";
        do
        {
            ShoutNum += "旺!";
            i++;
        } while (i <= ShoutNumber);
        MessageBox.Show(ShoutNum);
    }        
}

 

封装要点

1.封装就是把一个object的所有properties和methods放在一起

2.保持统一的对外接口,内部修改不影响外部调用

posted @ 2018-07-02 21:40  TheMiao  阅读(221)  评论(0编辑  收藏  举报