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(); } } }