封装的一般性
封装快捷键:Ctrl+R+E
封装的目的:
public修饰的属性,不够安全;private修饰的属性,无法使用
所以,用到了封装:
封装就是 隐藏对象的信息,但要流出访问的接口
封装代码示例:
class Child { private string name; private string sex; public string Name //封装的时候,要用public,保证类外能调用 { //属性什么类型,封装的时候就用什么类型, get //此处用string { return name; //属性一般用小写字母表示 } //但封装的时候首字母大写 set //封装方法里面就一个get{return 属性名称} 和 { //一个set{属性名称=value;} name = value; } //value是一个关键字 } public string Sex { get { return sex; } set { sex = value; } } public void play() { Console.WriteLine("I'm playing football!"); } }
主函数调用:
class Program { static void Main(string[] args) { Child c = new Child(); //首先创建 一个 对象 c.Name = "xiaoming"; //赋值时 对象名.封装方法名 c.Sex = "男"; Console.WriteLine(c.Name); //引用时 对象名.封装方法名 Console.WriteLine(c.Sex); c.play(); } }
封装和方法不同,不需要形参
不管是给属性赋值还是引用属性的值,只需要调用封装函数就行
如若封装过程中出错,编辑器会自动报错,只需要根据报错修改即可
通过set块约束属性赋值
有时候因为某些原因,给属性赋的值不符合实际情况,如:不能给一个小孩赋值60岁
通过set块约束,无非是在set里加一个条件判断语句
set { if (value>=3&&value<=7) { age = value; } }