第一单元封装学习指导书.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一单元封装学习指导书 一:学习目标 知识点 知识点重要性 掌握程度 知识点关联 封装性 封装的威力 this关键字 极高 了解 从面向思想编程角度理解封装,理解封装的作用,为后续学习属性等提供伏笔。 访问修饰符 成员的访问修饰符 成员的访问修饰符 极高 熟练 该部分内容在后续课程中应用比较广泛,重点理解各个访问修饰符之间的区别与联系 属性 声明属性 提供属性验证 只读和只写属性 极高 熟练 属性的由来,提供了那些作用,理解只读只写属性。也为前面所学封装在此很好的体会。 二:重难点知识点 重难点1:封装的概念 学习方法: 首先要从现实世界到编程世界封装的的用处 1)所谓的封装其实就是保护对象隐私。当然,没有人能完全隐藏自己的隐私,比如现实生活中去转户口时,不得不透露自己的家庭信息和健康状况。另外,在不同的场合所透露隐私的数量也不一样,朋友和家人可能会知道你更多的隐私,同事次之,其他人则知道得更少。面向对象的编程也考虑了这些实际的情况,所以编程语言有 public、private、 protected、friend等关键字,以适应于不同的情况。在面向对象的编程过程中为什么需要封装(Encapsulation)呢?因为对象也有隐私,对象的隐私就是对象内部的实现细节。要想对象保持良好的形象就要保护好对象隐私, 2)封装可以隔离变化。对象内部是非常容易变化的,比如:电脑在不断升级,机箱还是方的,但里面装的CPU和内存已是今非昔比了。变化是不可避免的,但变化所影响的范围是可以控制的,不管CPU怎么变,它不应该影响用户使用的方式。封装是隔离变化的好办法,用机箱把CPU和内存等封装起来,对外只提供一些标准的接口,如USB接口、网线接口和显示器接口等,只要这些接口不变,不管内部怎么变化,也不会影响用户的使用方式。 3) 封装还可以提高易用性。封装后只暴露最少的信息给用户,对外接口清晰,使用更方便,更具用户友好性。试想,如果普通用户都要知道机箱内部各种芯片和跳线是如何布局的,那是多么恐怖的事情,到现在为止编者甚至还搞不清楚硬盘的跳线设置,幸好也没有必要知道。 掌握封装在编程语言中的使用场合和表现形式 封装有两层含义,其一是隐藏内部行为,即隐藏内部函数,调用者只能看到对外提供的公共函数。其二是隐藏内部信息,即隐藏内部数据成员。 为了实现数据的封装,提高数据的安全性,一般建议把类的属性声明为私有的,把类的方法声明为公共的。这样,对象能够直接调用类中定义的所有方法,当对象想要修改或得到自己的属性的时候就必须要调用以定义好的专用的方法才能够实现。在考虑封装的时候,建议遵守“对象调方法,方法改属性”的要求即可。 重难点2:属性的概念 概念:属性是提供一个灵活的机制来读取、 写入,或计算私有字段的值的成员。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。 实例语法: class TimePeriod { private double seconds; public double Hours { get { return seconds / 3600; } set { seconds = value * 3600; } } } class Program { static void Main() { TimePeriod t = new TimePeriod(); // Assigning the Hours property causes the set accessor to be called. t.Hours = 24; // Evaluating the Hours property causes the get accessor to be called. System.Console.WriteLine(Time in hours: + t.Hours); } } 共性问题: 属性与字段容易混淆 属性与字段的异同: ?? 相同:都是表示类的一个数据(如人的身高、体重等)。 ?? 不同:属性对外部和派生类开放。这也解释了为什么需要加逻辑验证。 ???????????????字段对内部开放。提供更快的性能,更少的验证,信任程序员。 b)属性的使用场合把握不准 尽可能的使用属性(property),而不是数据成员(field)。 我们的目标:尽可能编写出运行效率更高,更健壮,更容易维护的C#代码。 原则一:尽可能的使用属性(property),而不是数

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档