• 什么是封装?


    1.封装概念

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

    2.封装的优点

    1》.封装还避免了命名冲突的问题,封装有隔离作用,不同的类中可以有相同名称的方法和属性,但不会混淆,也可以减少耦合(比如实现界面和逻辑分离)

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

    3》.从安全性考虑,封装使对代码的修改更加安全和容易,封装明确的指出了哪些属性和方法是外部可以访问的

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

    5》.从设计角度来讲,封装可以对外屏蔽一些重要的信息。注意:这里的代码保护不是指代码本身的加密,而是对不想外部更改的代码通过私有实现。

    二,代码实现:

    1》封装类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace FengZhuang
    {
        public class Cat
        {
            string _catName;
            string _catColor;
            readonly string _owner = "张三";
            int _sNumber;
    
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="catName"></param>
            public Cat(string catName, string catColor)
            {
                CatName = catName;
                CatColor = catColor;
            }
    
            /// <summary>
            /// 狗名字
            /// </summary>
            public string CatName
            {
                get { return _catName; }
                set { _catName = value; }
            }
            /// <summary>
            /// 狗的颜色 
            /// </summary>
            public string CatColor
            {
                get { return _catColor; }
                set { _catColor = value; }
            }
            /// <summary>
            /// 狗的主人 只读 
            /// </summary>
            public string Owner
            {
                get { return _owner; }
            }
    
            /// <summary>
            /// 狗叫的次数
            /// </summary>
            public int ShoutNumber
            {
                set { _sNumber = value; }
                get { return _sNumber; }
            }
    
            /// <summary>
            /// 狗叫的方法
            /// </summary>
            public void Shout()
            {
                int i = 0;
                string ShoutNum = "";
                do
                {
                    ShoutNum += "喵喵喵喵!";
                    i++;
                } while (i <= ShoutNumber);
                Console.WriteLine(Owner + "家一只" + CatColor + "色的猫," + "名字为:" + CatName + "  一直在叫:" + ShoutNum);
            }
        }
    }

    2》,调用实现

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace FengZhuang
    {
        class Program
        {
            static void Main(string[] args)
            {
                Cat c = new Cat("小白", "");
                c.Shout();
            }
        }
    }
  • 相关阅读:
    display:inline-block引发的间隙思考
    HTML中让表单input等文本框为只读不可编辑的方法
    纯CSS实现箭头、气泡让提示功能具有三角形图标(简单实例)
    区分javascript中的toString(),toLocaleString(),valueOf()方法
    Javascript高级程序设计笔记 <第五章> 引用类型
    js数组操作大全
    css中使用if条件在各大浏览器(IE6IE7IE8)中hack方法解决教程
    IE下判断IE版本的语句...[if lte IE 8]……[endif]
    有关opacity或RGBA设置颜色值及元素的透明值
    traceback模块——获取详细的异常信息
  • 原文地址:https://www.cnblogs.com/May-day/p/6398370.html
Copyright © 2020-2023  润新知