1、封装概念
封装: 包起外界不必要知道的东西,只向外界展露可公示的东西。
在C#中,类的封装: 将类中的私有字段封装成为公有属性。
公有属性就是public的get和set方法。
封装优点:
//枚举
enum Color{
White,Blac,Yellow,Red,Other
}
class Cat{
//类的成员默认是私有变量
//字段:
string catName;
//动态常量字段是要分配内存空间,而静态就不需要。下面是动态常量
readonly Color catColor = Color.Yellow; //C#枚举的调用赋值
readonly double catPrice = 800.00;
int shoutNumber; //叫的次数
///<summary>
///构造函数
///</summary>
///<param name="catName"></param>
public Cat(string catName)
{
CatName = catName;
}
//属性:
public string CatName{
get{return catName;}
set{catName = value;}
}
public Color CatColor{
get{return catColor;}
}
public doubleCatPrice{
get{return catPrice;}
}
public int ShoutNumber{
set{shoutNumber = value;}
get{return shourNumber;}
}
//猫叫的方法
public void Shout(){
int i = 0;
string ShoutNum = "";
do{
ShoutNum+="喵";
i++
}while(i<=ShoutNumber);
}
}
static void Main(string[] arg)
{
Cat cat = new Cat("大白");
cat.ShoutNumber = 5;
cat.Shout();
}
2、字段 和 属性 的区别
在实际开发过程中,尽量使用属性,把所有字段设置成私有字段,如果外界要用到他们,则就把他们封装成属性,这样可以保证数据安全。
如果外界修改字段,会导致对象内部引起连带的其他状态改变,那么建议使用属性封装字段。
如果字段的变动不会引发对象内部的连带问题,是可以使用public,但通常还是只用属性来封装字段。