c#封装与继承

c#封装与继承

ID:20556165

大小:307.50 KB

页数:55页

时间:2018-10-13

c#封装与继承_第1页
c#封装与继承_第2页
c#封装与继承_第3页
c#封装与继承_第4页
c#封装与继承_第5页
资源描述:

《c#封装与继承》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章面向对象的高级编程5.1类的封装5.2类的继承5.3类的多态性封装:隐藏调用者不需要了解的信息。继承:简化类的设计。多态:类为名称相同的方法提供不同实现方式的能力。Page:2使用类封装数据和方法使用对象合理隐藏对象的内部细节使用属性安全访问对象或类的特性5.1类和对象的封装性Page:35.1类和对象的封装性在面向过程的编程语言中,为了提高代码的独立性和复用程度,通常以函数作为编程单元。而在面向对象的编程语言中,编程单元不是函数,而是类。通过类这样一种代码的组织形式,来封装属于类的数据和操作。类对外不是开放的,外界只能通

2、过类自己提供的接口来访问类,用户不必知道类的内部细节,整个应用程序由若干不同的类组成。5.1.1类的封装性[任务7-1]:在控制台窗口输出学生的学号、姓名、性别等基本信息。解决思路:1.在主方法Main中提示输入学生学号、姓名和性别等数据;2.输出学生基本信息。完成步骤:1.创建一个名为“Chapter7_1”的控制台应用程序。2.在类Program的Main方法中编写如下代码:Page:5classProgram{staticvoidMain(string[]args){stringstudId,studName,sex;//

3、声明变量Console.Write("请输入学号:");studId=Console.ReadLine();Console.Write("请输入姓名:");studName=Console.ReadLine();Console.Write("请输入性别:");sex=Console.ReadLine();Console.WriteLine(“学生的学号是:{0},姓名:{1},性别:{2}",studId,studName,sex);}}Page:65.1类和对象的封装性5.1.1类的封装性很显然,采用以上编程形式来输出学生信息

4、的做法是有问题的,主要原因如下:(1)这种编程思路不符合信息隐蔽或“透明”原则。学生的信息应该包含在一个明确的范围内,不应该允许外界对它随便访问。这里的透明是指类的具体数据像空气一样是透明的、是看不见的。(2)由于学生的数据没有被封装起来,任何方法都可以对它们进行访问,无形中就难免会出现错误。图5.1所示的运行结果中,性别“南”显然不符合实际情况。图5.1程序的运行结果Page:75.1类和对象的封装性5.1.1类的封装性因此,要对上述程序进行改造,既要达到封装学生数据的目的,又要满足用户获取学生信息的要求。为此定义一个如下的学

5、生类:ClassStudent{stringstudId,studName,sex;//声明字段publicStudent(stringstudId,stringstudName,stringsex)//带参数的构造函数{this.studId=studId;this.studName=studName;this.sex=sex=="m"?"男":"女";}publicvoidSayMessage()//输出学生信息{Console.WriteLine("学生的学号是:{0},姓名:{1},性别:{2}",studId,stud

6、Name,sex);}}Page:85.1类和对象的封装性5.1.1类的封装性由上述定义的类Student不难看出,只在用户实例化学生的时候,通过类的构造函数来访问学生的数据,要获取学生的基本信息,也只能通过类内部定义的方法SayMessage来完成,以实现对学生的封装和安全访问的目的。把上述Main方法改写为以下内容,来输出学生的基本信息。staticvoidMain(string[]args){//调用学生类来输出学生信息Studentstudent=newStudent("06454701","尹玲玲","w");stud

7、ent.SayMessage();}执行程序,运行结果如图所示。Page:95.1类和对象的封装性5.1.2对象的封装性【学一学】类是一种数据类型,对象是类的实现,本质上是类的一种变量。对象一旦创建,也就具有了类定义中的所有成员数据和方法,也具有类的封装特性。有时虽然对象可以创建,但对对象的访问是有限制的。这种访问的程度由类中的关键字(如private、public、protected、internal等)和具体的操作定义来控制。【试一试】[任务7-2]:定义一个Human类,创建该类的两个对象Mary和John,如果对象是男的

8、,他可以公开他的姓名、年龄和职业。如果是一个女士,那她只能公开她的姓名和职业。解决思路:1.定义类Human。该类包含姓名、年龄和职业等数据字段,以及公开个人情况的操作。2.在主方法Main中创建对象,依次输出各对象的个人情况。完成步骤:1.创建一个名为“Cha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。