你的位置:首页 > 软件开发 > ASP.net > 深入分析面向对象中的封装作用

深入分析面向对象中的封装作用

发布时间:2016-04-24 18:00:03
之前我(梦在旅途)发表过一篇名为《深入分析面向对象中的对象概念》的文章,里面主要讲解了类与对象的关系以及对象的概念、状态、行为、角色几个知识点,让大家对对象有了一些深入的了解,而本文则再来谈谈面向对象的三大特性之一:封装,封装是实现面向对象的基础,深入的理解封装的特性,有利于我们 ...

之前我(梦在旅途)发表过一篇名为《深入分析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 (#换成@)。