《 Dart 语言》课件 ch06-面向对象编程_第1页
《 Dart 语言》课件 ch06-面向对象编程_第2页
《 Dart 语言》课件 ch06-面向对象编程_第3页
《 Dart 语言》课件 ch06-面向对象编程_第4页
《 Dart 语言》课件 ch06-面向对象编程_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

案例:定义类和创建对象面向对象程序设计案例描述设计一个案例,演示定义类、创建对象和使用对象的方法。知识要点Dart是一个面向对象编程语言,同时支持基于mixin

的继承机制。每个对象都是一个类的实例,所有的类都继承于Object。使用关键字

calss

声明一个类。知识要点使用关键字

new

创建一个对象,new可以省略。对象由函数和数据(即方法和实例变量)组成。方法的调用要通过对象来完成,调用的方法可以访问其对象中的其他方法和属性。ThanksDART案例:默认构造函数面向对象程序设计案例描述设计一个案例,演示默认构造函数的定义和使用方法。知识要点构造函数分类ClassName(...)//默认构造函数ClassName.identifier(...)//命名构造函数constClassName(...)//常量构造函数factoryClassName(...)//工厂构造函数知识要点默认构造函数函数名与类名相同,没有返回值,参数可有可无,不允许重载,即不允许有相同名称的构造函数。如果不显式定义类的构造函数,该类的默认构造函数是无参的。三种定义方式ThanksDART案例:命名构造函数面向对象程序设计案例描述设计一个案例,演示命名构造函数的定义和使用方法。知识要点命名构造函数。通过在类名后面附加标识符来定义,通过调用该方法来创建对象。一个类可以定义多个命名构造函数,但只能定义一个默认构造函数。命名构造函数不能被继承,可以把命名构造函数当成静态方法来理解。ThanksDART案例:常量构造函数面向对象程序设计案例描述设计一个案例,演示常量构造函数的定义和使用方法。知识要点常量构造函数。使用

const声明构造方法,并且类所有属性都必须使用

final修饰。常对象的声明和创建。必须使用

const声明常对象,但在创建常对象时可以使用/不使用const。常对象的属性不能被修改。ThanksDART案例:初始化列表和

重定向构造函数面向对象程序设计案例描述设计一个案例,演示初始化列表和重定向构造函数的使用方法。知识要点初始化列表用于构造函数体运行之前初始化实例变量。在初始化列表中,既可以使用常量,也可以使用构造函数的参数来初始化实例变量。构造函数的参数既可以是类的实例变量,也可以是

Map等其他类型。知识要点重定向构造函数利用

this

关键字实现构造函数的重定向,即在创建对象时,通过该函数转向默认构造函数,但不能转向其他类型构造函数。ThanksDART案例:静态成员和实例成员面向对象程序设计案例描述设计一个案例,演示类的静态(类)属性和方法的定义和使用方法,以及它们与实例属性和方法的区别。知识要点静态成员如果在定义类的属性或方法时加上

static

关键字,则该属性或方法就成为类的静态成员(也称为类成员),非静态成员又称为实例成员。知识要点静态成员和实例成员的区别静态成员随着类的创建而创建实例成员在创建对象时才创建静态成员的创建时间早于实例成员。知识要点使用规则类(静态)成员只能通过类名访问,不能通过对象访问,但实例成员只能通过对象访问,不能通过类名访问。在静态方法中不能使用非静态成员,而在非静态方法中可以使用静态成员。ThanksDART案例:getter和

setter面向对象程序设计案例描述设计一个案例,演示getter

和setter的使用方法。知识要点getter

setter。也称为访问器和更改器,是一组特殊的方法,提供了读写对象属性的能力。在Dart中对对象属性的访问实际上都是调用

getter方法,对对象的赋值实际上都是调用了

setter方法。对象的每个属性都有一个与之关联的默认

getter方法,每个非final属性都有一个与之关联的默认

setter方法。知识要点属性的

getter

setter

方法可以通过使用

get

set

关键字来显式声明,方法名是需要定义的属性名。getter方法不需要参数列表,其访问方法与属性

相同。setter方法只能接受一个参数,其调用方法与给属性赋值一样。ThanksDART案例:级联操作符和

call函数面向对象程序设计案例描述设计一个案例,演示级联操作符和call函数的使用方法。知识要点级联操作符利用级联操作符..,对象可以连续调用其属性和方法。级联操作符之前不能有其他标点符号。call方法如果一个类实现了

call方法,则该类的对象可以直接使用该方法。调用

call方法的格式:对象(参数列表)。ThanksDART案例:继承面向对象程序设计案例描述设计一个案例,演示继承的工作原理和实现方法。知识要点继承的含义继承是代码重用的一种方法,子类可以直接使用父类的实例成员。继承方式Dart语言采用单继承方式,即除

Object类外,其他类都只有一个父类。知识要点继承实现利用

extends关键字实现类之间的继承关系。继承限制构造函数、类(静态)成员不会被子类继承。知识要点默认构造函数的执行顺序在没有显式定义父类和子类构造函数时,子类默认构造函数会在函数体执行之前调用父类默认构造函数。ThanksDART案例:继承中的构造函数面向对象程序设计案例描述设计一个案例,演示继承中构造函数的功能和使用方法。知识要点如果父类中显式定义了构造函数,那么子类必须显式定义构造函数,而且必须在子类构造函数的初始化列表中利用

super关键字显式调用父类构造函数。利用

super关键字显式调用父类构造函数时,不能使用

this关键字向父类传递参数,因为此时子类构造函数体尚未执行,子类的实例对象尚未被初始化。ThanksDART案例:构造函数的执行顺序面向对象程序设计案例描述设计一个案例,演示继承中构造函数的执行顺序。知识要点构造函数的执行顺序。当利用子类构造函数创建对象时,子类构造函数首先通过初始化列表调用父类构造函数,然后再执行子类构造函数体。当父类显式定义了构造函数时,子类构造函数必须在初始化列表中利用

super

调用父类的构造函数。知识要点子类既可以定义同名(默认)构造函数,也可以定义命名构造函数,在同名或命名构造函数的初始化列表中,既可以调用父类的同名构造函数,也可以调用父类的命名构造函数。ThanksDART案例:方法覆写面向对象程序设计案例描述设计一个案例,演示子类方法覆写父类方法的功能及实现方法。知识要点方法覆写子类重新定义父类中的方法,如getter和setter方法。@override注解用于注解需要覆盖的父类方法,也可以不用,建议使用。覆写的功能扩展父类的功能。ThanksDART案例:操作符覆写面向对象程序设计案例描述设计一个案例,演示操作符覆写的功能及实现方法。知识要点操作符覆写是指对操作符的重新定义,可以为操作符赋予新的功能。定义格式知识要点Dart中可以覆写的操作符:ThanksDART案例:抽象类面向对象程序设计案例描述设计一个案例,演示抽象类的定义、功能及其使用方法。知识要点抽象类。使用关键字abstract修饰的类,不能被直接实例化。抽象方法。只有方法头,没有方法体,但不能使用abstract修饰。抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类,且必须使用abstract关键字进行声明。知识要点抽象类的子类必须实现父类中的抽象方法,即必须在子类中重新定义抽象父类中的抽象方法,并给出方法体。抽象类的子类可以不用实现父类中的非抽象方法。ThanksDART案例:多态性面向对象程序设计案例描述设计一个案例,演示多态性的功能及其实现方法。知识要点多态性父类定义的方法不去实现,让继承它的子类去实现,每个子类有不同的表现。实现方法将子类对象赋值给父类对象的引用,父类对象引用不同子类中的同名函数时,得到的执行效果是不同的。ThanksDART案例:接口面向对象程序设计案例描述设计一个案例,演示接口的定义、功能和使用方法。知识要点在Dart中,类和接口是统一的,类就是接口,因此接口中既可以包含抽象方法,也可以包含非抽象方法。每个类都隐式定义了一个包含所有实例成员的接口。知识要点如果是复用已有类的实现,则使用继承(extends),如果只是使用已有类的外在行为,则使用接口(implements)。定义实现接口的类,必须实现接口中所有的属性和方法。ThanksDART案例:mixin面向对象程序设计案例描述设计一个案例,演示mixin的定义、功能和使用方法。知识要点mixin。中文意思是混入,就是在类中混入其他功能,也就是给类添加新特征。可以把

mixin

理解为一种特殊的类,它实现了类的多继承功能,从而解决了

Dart中类不能进行多继承的问题。mixin

的特殊之处在于,它只能继承

Object,不能继承其他类,它没有构造函数,其功能就是为其他类添加新特征,相当于其他类的子类。ThanksDART案例:多个mixin面向对象程序设计案例描述设计一个案例,演示一个类拥有多个mixin的实现方法和功能。知识要点一个类在继承另一个类的同时可以拥有多个mixin。当一个类拥有多个

mixin时,如果这些mixin中具有相同的属性或方法,则后面

mixin中的属性和方法会覆盖前面

mixin中的属性和方法。ThanksDART案例:mixin和接口面向对象程序设计案例描述设计一个案例,演示综合利用mixin

和接口实现不同类型汽车组装的方法。知识要点mixin

类只能继承(extends)Object类,不能继承其他类,如果要使用其他类中的属性和方法,可以通过实现(implements)接口方式。使用关键字

with可以为一个类添加一个或多个

mixin,即为类添加一个或多个特征。知识要点classBus=TyrewithElectricEngine;如果一个类没有自己的属性和方法,而是由其他类组合而成,就可以使用简写模式。以下代码定义了一个

Bus

类,它是由

Tyre类和

ElectricEngine

类(mixin)组合而成:ThanksDART案例:mixin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论