之前我(梦在旅途)发表过一篇名为《深入分析面向对象中的对象概念》的文章,里面主要讲解了类与对象的关系以及对象的概念、状态、行为、角色几个知识点,让大家对对象有了一些深入的了解,而本文则再来谈谈面向对象的三大特性之一:封装,封装是实现面向对象的基础,深入的理解封装的特性,有利于我们 ...
之前我(梦在旅途)发表过一篇名为《深入分析get='_blank'>面向对象中的对象概念》的文章,里面主要讲解了类与对象的关系以及对象的概念、状态、行为、角色几个知识点,让大家对对象有了一些深入的了解,而本文则再来谈谈面向对象的三大特性之一:封装,封装是实现面向对象的基础,深入的理解封装的特性,有利于我们能更好的领悟面向对象的思想以及实现面向对象编程。以下均为本人凭借多年开发经验总结的个人观点,大家若发现有误或不足的地方,欢迎指正和交流,谢谢!
一、什么是封装?
顾名思义,封:封闭,装:装起来,将具体的实现细节装到一个容器中,并封闭起来,防止容器外部直接访问容器内部的实现细节,仅公开暴露指定的访问路径;生活中的例子:到饭馆吃饭,你只需要跟服务员讲你要吃什么饭菜,服务员就会跟后台厨房的厨师说明一下,等待一段时间后,饭菜就被服务员直接递送到你面前,作为客户的你是不知道也无需知道饭菜的具体做法,后台厨房的厨师及做饭菜的过程就是被封装的细节,而服务员则是公开暴露的访问路径,你只能通过服务员点餐然后获得饭菜,而不能直接去到后台厨房要求厨师如何做饭菜;
示例代码如下:
/// <summary> /// 饭馆 /// </summary> class FanGuan { private string doFoodName; /// <summary> /// 点餐 /// </summary> /// <param name="foodName"></param> public void ChooseFood(string customer, string foodName) { doFoodName = foodName; Console.WriteLine("顾客:{0},点餐:{1}", customer, foodName); } /// <summary> /// 获得饭菜 /// </summary> /// <returns></returns> public string GetFood() { string cookeResult = CookeFood("厨师甲"); return string.Format("{0},请您用餐,谢谢!", cookeResult); } /// <summary> /// 厨师做菜,私有方法,外部不可访问 /// </summary> /// <param name="cooker"></param> /// <returns></returns> private string CookeFood(string cooker) { Console.WriteLine("厨师:{0}开始做菜:{1}>>>>", cooker, doFoodName); Console.WriteLine("开火"); Console.WriteLine("放油"); Console.WriteLine("放食材,翻炒"); Console.WriteLine("加入佐料"); Console.WriteLine("菜熟起锅,盛到盘子递给服务员"); Console.WriteLine("结束<<<<"); return string.Format("菜:{0}已做好", doFoodName); } }//实际用法: static void Main(string[] args) { FanGuan fanGuan = new FanGuan(); fanGuan.ChooseFood("梦在旅途", "红烧茄子"); string food = fanGuan.GetFood(); Console.WriteLine(food); Console.WriteLine("用餐"); Console.ReadKey(); }
原标题:深入分析面向对象中的封装作用
关键词:面向对象
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。