电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Visual C#程序设计应用教程 教学课件 ppt 作者 郭力子 1_ 第5章面向对象编程基础

36页
  • 卖家[上传人]:E****
  • 文档编号:89184082
  • 上传时间:2019-05-20
  • 文档格式:PPT
  • 文档大小:252KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、VISUAL C# 程序设计应用教程,第5章面向对象编程基础, 面向对象程序设计的基本概念 类和类的成员 类的继承、方法和接口,本章要点,第5章 面向对象编程基础,5. 1 面向对象程序设计概述 5. 2 类和对象 5. 3 字段、属性和索引器 5. 4 方法 5. 5 抽象类与接口 5. 6 委托,5.1 面向对象程序设计概述,面向对象程序设计(Obiect-Oriented Programming),简称OOP OOP技术按照人们的思维习惯,模拟现实世界的环境,将数据和对数据的操作作为一个相互依赖、不可分割的整体;采用数据抽象和信息隐藏技术,使得复杂的编程工作条理清晰、编写容易;更加有利于软件的开发、维护和升级。 OOP技术的主要概念有 : 抽象 继承 封装 多态性,通常把具有相同性质和功能的事物所构成的集合体叫做类。 类是面向对象的程序设计的基本构成模块。 5.2.1 类的声明 5.2.2 对象和类的实例化 5.2.3 类的成员 5.2.4 类成员的访问 5.2.5 构造函数与析构函数 5.2.6 类的多态,5.2 类和对象,5.2.1 类的声明,类的声明使用class关键字,

      2、class关键字前可以加上类的属性集或者修饰符。 类的声明格式: 类的属性集 类的修饰符 关键字 class 类名 :基类名和接口列表 类的成员; ,类是一种抽象的数据类型。而对象就是一个类的具体实例 对象是一个引用类型的变量。它的创建格式如下: 类名 对象名 = new 类名(参数); 创建对象后,可通过对象访问类中的数据和函数,使用方法: 对象名.成员函数名 或 对象名.数据 例: class animal public string color; class cat void Method( ) animal MyPet=new animal( ); MyPet.color=“white“; ,5.2.2 对象和类的实例化,5.2.3 类的成员,类包含有数据成员、函数成员或其他的嵌套类型等。 函数成员:方法、属性、事件、索引器、操作符、实例构造函数、析构函数和静态构造函数等。 它们一般包含可执行代码,执行时完成一定的操作 数据成员:类要处理的数据,被称为类的字段,字段包括常数和变量。,5.2.4 类成员的访问,1.访问修饰符 类的成员的访问,使用访问修饰符。定义类的成员的不同访问

      3、权限:公有的(public)、私有的(private)、保护的 (protected)、内部的(internal)等,2. 静态成员和实例成员 类的成员有两种类型: 静态成员,用static修饰符声明的成员是静态成员,静态成员属于类所有,能够为这个类的所有实例所共享,使用时不需将类实例化就可访问; 实例成员,不用static修饰符声明的成员,则为实例成员,实例成员属于类的实例。 在同一个命名空间内访问静态成员的语法是: 类名.静态成员名,5.2.5 构造函数和析构函数,1.构造函数和析构函数 构造函数的名字与类名相同。每当用new生成类的对象时,自动调用类的构造函数。因此,可以把初始化的工作放到构造函数中完成。构造函数是类的特殊的成员,它用于创建类的实例时为对象分配空间,完成初始化工作。 构造函数不能有返回值。可以有零个或多个参数。 类的对象被撤销时,将自动调用析构函数。一些善后工作可放在析构函数中完成。析构函数的名字为类名前面加一个“”符号,无返回类型,也无参数。 构造函数和析构函数的执行是无条件的,在声明一个对象或销毁一个对象时,如果没有声明相应的构造函数和析构函数,系统会自动为之

      4、产生,并在创建对象时调用构造函数,而在销毁对象时调用析构函数,例:下面代码给出了Point类的构造函数。 class Point int x,y ; public Point(int x,int y) this.x=x; this.y=y; 2. this关键字 上列代码中的this关键字是用来代表对象自身,也就是说,如果用上面的构造函数去构建了一个目标对象,则this便可以用来代表所构建的对象。this用在构造函数中时,便于区别同名的构造函数参数和类成员变量。,5.2.6 类的继承,继承允许在已有类的基础上创建新类,新类从已有类中继承类成员,而且可以重新定义或增加新的成员,从而形成类的层次或等级。 被继承的类称为基类或父类,继承后产生的类称为派生类或子类。C#中的继承符合下列原则: 继承是可以传递的。如果C从B中派生,B又从A派生,那么C不仅继承了B的成员,同样也继承了A中的成员。 Object是所有类的基类。 构造函数和析构函数不能被继承。 派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。 类继承的基本语法: 修饰符class子类名:基类名 类体 ,类的继承示

      5、例: class A 类体A class B:A 类体B 上述代码中,类B继承于类A,类A称作父类(也叫基类),类B称作子类(也叫派生类)。C#中,子类只能有一个父类。子类从基类中继承除了构造函数和析构函数以外的所有成员,如函数、字段、属性、事件和索引器等。,5.2.7 类的多态,多态是面向对象编程思想的核心之一。 多态的意思是指:当从父类派生了一些子类后,每个子类都由不同的代码实现。因此,在程序运行时,当同一个操作作用于不同的类的实例时,面向对象的语言会自动判断对象的派生类型,并调用相应的方法,最后产生不同的执行结果。 使用多态,能实现程序通用性,提高代码的重用率。,通常把具有相同性质和功能的事物所构成的集合体叫做类。 类是面向对象的程序设计的基本构成模块。 5.3.1 字段 5.3.2 属性 5.3.3 索引器,5.3 字段、属性和索引器,5.3.1 字段,字段:与对象或类相关联的变量。 字段包括静态字段、实例字段和只读字段。字段的声明与标准的变量命名相同,声明格式: 访问修饰符 类型标识符 字段变量名; 下面的代码中,类A中包含了3个字段:公有的整型字段i,公有的只读字符串型字段

      6、s,私有的浮点型字段f: class A public int i; /整型字段 public readonly string s=“I like C#.“; /只读字符串型字段 private float f; /浮点型字段 ,5.3.2 属性,属性:用于刻画对象的特征或表示对象的状态,提供对类或对象性质的访问,譬如窗口的标题、背景颜色、字符串的长度、字体名称等。 属性体现了对象的封装性:不直接操作类的数据内容,而是通过访问器进行访问。 属性在类模块内通过以下方式声明: 访问修饰符 属性类型 属性名称 访问器; ,set访问器:给属性赋值时使用,set访问器始终使用隐含的参数value设置属性的值。获取属性值时使用get访问器。 get访问器:通过return返回属性的值。如果只有get访问器,表示是只读属性;如果只有set访问器,表示只写属性;如果既有get也有set访问器,表示读写属性。 例:简单表达类A中的属性myProperties的声明: class A private int i; public int myProperties get /get访问器 return i;

      7、 set /set访问器 i=value; ,5.3.3 索引器,索引器(indexer):也称下标指示器。使用索引器,可以像访问数组的方式访问类或结构的对象 索引器的声明格式: class 类名 修饰符 类型 this 索引参数表 get 代码 set 代码 ,索引器的定义与属性的定义很相似。不同点: (1) 索引器有索引参数值; (2) 使用索引器时,由于类本身被当做数组使用,索引器没有自己专有的标识符,而是使用关键字this当做自己的名称。,通常把具有相同性质和功能的事物所构成的集合体叫做类。 类是面向对象的程序设计的基本构成模块。 5.4.1 方法的声明 5.4.2 方法的调用 5.4.3 静态方法 5.4.3 方法的重载 5.4.3 方法的覆盖 5.4.3 使用base访问,5.4 方法,方法:指在类的内部定义的,并且可以在类或类的实例上运行的函数。因此,方法也称成员函数。 方法的声明格式: 方法修饰符 返回类型 方法名( 形式参数表 ) 方法体 ,5.4.1 方法的声明,5.4.2 方法的调用,方法主要分为两类。 静态方法,调用形式为: 类名.静态方法名(参数列表) 实例方

      8、法,调用的一般形式为: 实例名=new类名( 构造函数参数表 ); 实例名.方法名(实参表); 如果是在同一个类的内部调用方法,则不需要指定对象名,形式为: 方法名(实参表);,5.4.3 静态方法,静态方法:用static修饰符声明的方法。 静态方法不对特定实例进行操作,不与实例相关联,它属于类。 调用静态方法不需要创建类实例。 静态方法只能访问类中的静态成员,如用于访问非静态成员时将发生错误。 实例方法:与静态方法不同,实例方法对类的某个给定的实例进行操作,而且可以采用关键字this来访问该实例, 属于实例(对象)。 实例方法可以访问类中的任何成员。,方法重载(overload): 指调用同一方法名,但各方法中参数的数据类型、个数或顺序不同。只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,调用时,编译器就会自动判断在哪种情况下调用哪种方法,5.4.4 方法的重载,方法的覆盖(override)是指派生类覆盖基类的同名方法(也称作为重写),实现覆盖的两种方式: (1) 在派生类要覆盖的方法前面加 new 修饰,而基类不需要作任何改动。这种方法的缺点是不能实现多态。

      9、(2) 在派生类要覆盖的方法前面加 override 修饰,而基类的同名方法前面加 virtual修饰。这样就能实现多态。如方法的修饰符中含有virtual时,这种方法也被称作虚方法。,5.4.5 方法的覆盖,5.4.6 使用base访问,base访问:使用base关键字从派生类中访问基类成员,它有两种基本用法: (1) 在定义派生类的构造函数中,指明要调用的基类的构造函数,由于基类可能有多个构造函数,根据base后的参数类型和个数,指明要调用某一个基类构造函数。 (2) 在派生类的方法中调用基类中被派生类覆盖的方法。,5.5.1 抽象类 5.5.2 接口,5.5 抽象类与接口,5.5.1 抽象类,抽象类:在声明基类时,有时候只打算给出派生类的一般化形式,而后让派生类去实现具体内容。这种类只定义了方法的框架,而没有提供这些方法的具体实现。 使用抽象类时,有以下规定: 抽象类只可以作为其他类的基类,它不能直接被实例化,而且抽象类不能使用 new操作符。如果抽象类中含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类的实例的引用。 抽象类可以包含抽象成员。 抽象类定义抽象方法时,应将关键字abstract添加到方法的返回类型的前面。 抽象方法没有实现,方法定义后面是分号,而不是常规的方法块。抽象类的派生类必须实现所有抽象方法。 例如: public abstract class A public abstract void DoWork (int i); ,5.5.2 接口,接口声明:一种类型声明。 与类一样,接口也定义了一系列方法、属性、索引和事件。 与类不同的是,接口并不提供实现。它只表示一种约定,实现接口的类必须遵守该接口定义的约定。 一个接口可以从多个基接口继承,而一个类可以实现多个接口。 接口的声明方法: 接口修饰符 interface接口名 : 基接口 接口体 ,5.6 委托,委托(delegate):允许将一个对象中的方法传递给另一个能调用该方法的类的某个

      《Visual C#程序设计应用教程 教学课件 ppt 作者 郭力子 1_ 第5章面向对象编程基础》由会员E****分享,可在线阅读,更多相关《Visual C#程序设计应用教程 教学课件 ppt 作者 郭力子 1_ 第5章面向对象编程基础》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.