欢迎来到天天文库
浏览记录
ID:34446554
大小:876.04 KB
页数:50页
时间:2019-03-06
《第四讲类与类的封装》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四讲第四讲类与类的封装类与类的封装西南林学院计算机与信息科学系周开来OOP(ObjectOOP(Object--OrientedProgrammingOrientedProgrammingòOOPOOP概述概述((主要特征主要特征))ò类的封装类的封装ò类的继承类的继承ò多态机制多态机制为什么要使用为什么要使用OOP?OOP?ò为什么使用object-orientedprogramming?ò现实世界中就是对象无处不在ò客户(Customer)ò产品(Products)ò订单(Orders)ò文档(Docu
2、ments)OOP的三大基本特征òEncapsulation封裝òclassòInheritance继承(Is-a关系与has-a关系)òClasshierarchyòPolymorphism多态òAbstractionclassòInterface对象的封装对象的封装有选择的信息隐藏防止意外的数据破坏更易于隔离和修复错误对象的继承对象的继承通过继承,实现“功能”的重用减少重复工作平面直角高清晰黑白彩色对象的多态对象的多态彩色图像彩色图像消息相同,作用对象消息相同,作用对象不同,其结果也不同不同,其结果也不同
3、黑白图像黑白图像类和对象的概念类和对象的概念蓝图与产品的关系抽象与具体的关系Class&Object抽象蓝图抽象蓝图具体产品具体产品类和对象的概念类和对象的概念蓝图与产品的关系抽象与具体的关系Class&Object抽象蓝图抽象蓝图具体产品具体产品类类(Classes)(Classes)ò类定义了一个类定义了一个““模板模板””,通过这个,通过这个““模板模板””可以生可以生成一个或多个对象成一个或多个对象ò类定义了一个对象的类定义了一个对象的““状态状态””和和““行为行为””classStudentcla
4、ssStudent////学生类学生类{{ininttNNo;//o;//学号学号strinstringgName;//Name;//姓名姓名属性字段,描述状态flofloaatScore;//tScore;//成绩成绩publicintpublicinteenrollmentnrollment(()//)//注册,取得学号注册,取得学号{{…………////实现代码实现代码}}行为方法,修改状态pupublicfloatexamine()//blicfloatexamine()//考试,修改成绩考试,修改成绩
5、{{…………////实现代码实现代码}}}}二、二、类的声明类的声明类的声明就是定义一个新类,其格式如下:类的声明就是定义一个新类,其格式如下:[[属性属性][][类修饰符类修饰符][][partialpartial]]classclass标识符标识符[:[:基类基类]]{{…………类的定义体类的定义体};};(1(1))类声明包含一组可选的属性类声明包含一组可选的属性(C#(C#使程序员可以使程序员可以创造新的说明性信息种类,称为属性创造新的说明性信息种类,称为属性))(2)(2)一组可选的类修饰符一组可选
6、的类修饰符(public;protected;internal;(public;protected;internal;private;abstract;sealed)private;abstract;sealed)类的声明类的声明(3)Partial(3)Partial是是2.02.0版新增加的一个关键字版新增加的一个关键字,,表明该表明该类只是一个局部类类只是一个局部类((引入局部类后引入局部类后,,就可以将就可以将一个大类划分成若干个小局部类一个大类划分成若干个小局部类,,分属于不同分属于不同的的.CS.
7、CS文件中文件中,,但都必须属于同一个名称空间但都必须属于同一个名称空间))(4)(4)关键字关键字classclass和一个名称该类的标识符和一个名称该类的标识符(5)(5)接着是一个可选的继承基类,最后是可根接着是一个可选的继承基类,最后是可根据需要后接一个分号的类体。据需要后接一个分号的类体。实例化实例化(Instantiation)(Instantiation)ò实例化就是创建对象的过程实例化就是创建对象的过程ò使用使用newnew关键字来创建关键字来创建publicclasspublicclassS
8、Studenttudent{{StudeStudentntS1;S1;privatestaticinprivatestaticinttGGlobalNo=2004070601;lobalNo=2004070601;S1S1==newnewStudentStudent();();publicpubliciintntNo;//No;//学号学号S1.Name=“S1.Name=“张飞张飞";";publ
此文档下载收益归作者所有