C#面向对象基础教程 作者 宋楚平 周建辉 第7章 封装.pptVIP

C#面向对象基础教程 作者 宋楚平 周建辉 第7章 封装.ppt

  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文档。上传文档
查看更多
学习目标 使用类封装数据和方法 使用对象合理隐藏对象的内部细节 使用属性安全访问对象或类的特性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.1类和对象的封装性 7.2属性的封装性 7.2属性的封装性 7.2属性的封装性 7.2属性的封装性 7.2属性的封装性 7.2属性的封装性 7.2属性的封装性 本章小结 练一练 * * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 第七章 封装 【学一学】 在面向过程的编程语言中,为了提高代码的独立性和复用程度,通常以函数作为编程单元。而在面向对象的编程语言中,编程单元不是函数,而是类。通过类这样一种代码的组织形式,来封装属于类的数据和操作。类对外不是开放的,外界只能通过类自己提供的接口来访问类,用户不必知道类的内部细节,整个应用程序由若干不同的类组成。 【试一试】 [任务7-1]:在控制台窗口输出学生的学号、姓名、性别等基本信息。 解决思路: 1.在主方法Main中提示输入学生学号、姓名和性别等数据; 2.输出学生基本信息。 完成步骤: 1.创建一个名为“Chapter7_1”的控制台应用程序。 2.在类Program的Main方法中编写如下代码: class Program 7.1.1 类的封装性 第七章 封装 7.1.1 类的封装性 第七章 封装 { static void Main(string[] args) { string studId, studName, sex;//声明变量 Console.Write(请输入学号:); studId = Console.ReadLine(); Console.Write(请输入姓名:); studName = Console.ReadLine(); Console.Write(请输入性别:); sex = Console.ReadLine(); Console.WriteLine(“学生的学号是:{0},姓名:{1},性别: {2}, studId, studName, sex); } } 7.1.1 类的封装性 第七章 封装 很显然,采用以上编程形式来输出学生信息的做法是有问题的,主要原因如下: (1)这种编程思路不符合信息隐蔽或“透明”原则。学生的信息应该包含在一个明确的范围内,不应该允许外界对它随便访问。这里的透明是指类的具体数据像空气一样是透明的、是看不见的。 (2)由于学生的数据没有被封装起来,任何方法都可以对它们进行访问,无形中就难免会出现错误。图7.1所示的运行结果中,性别“南”显然不符合实际情况。 图7.1 程序的运行结果 7.1.1 类的封装性 第七章 封装 因此,要对上述程序进行改造,既要达到封装学生数据的目的,又要满足用户获取学生信息的要求。为此定义一个如下的学生类: Class Student { string studId, studName, sex;//声明字段 public Student(string studId,string studName,string sex) //带参数 的构造函数 { this.studId = studId; this.studName = studName; this.sex = sex == m ? 男 : 女; } public void SayMessage()//输出学生信息 { Console.WriteLine(学生的学号是:{0},姓名:{1},性别:{2}, studId, studName, sex); }} 7.1.1 类的封装性 第七章 封装 由上述定义的类Student不难看出,只在用户实例化学生的时候,通过类的构造函数来访问学生的数据,要获取学生的基本信息,也只能通过类内部定义的方法SayMessage来完成,以实现对学生的封装和安全访问的目的。 把上述Main方法改写为以下内容,来输出学生

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档