16.5 同步练习

  1. 判断正误:整型、浮点型、布尔型、字符串等基本数据类型也可以有扩展机制。

  2. Swift中扩展机制可以在原类型中添加新功能的内容包括(  )。

A. 实例计算属性和静态计算属性

B. 实例方法和静态方法

C. 构造器

D. 下标

  1. 判断正误:扩展机制可以扩展实例计算属性和静态计算属性。

  2. 判断正误:扩展类的时候能向类中添加新的便利构造器,但不能添加新的指定构造器或析构器,指定构造器和析构器只能由原类型提供。

  3. 判断正误:类、结构体和枚举,都可以遵守多个协议时,各协议之间用逗号“,”隔开。

  4. 判断正误:如果一个类继承父类的同时也要求遵守协议,应当把父类放在所有的协议之前。

  5. 判断正误:在结构体和枚举类型中可以定义变异方法,而在类中没有这种方法。原因是结构体和枚举类型中的属性是不可修改的,通过定义变异方法,可以在变异方法中修改这些属性。

  6. 判断正误:虽然协议没有具体的实现代码,不能被实例化,它的存在就是为了规范其他的类型遵守它实现。

  7. 有以下协议定义:

  1. protocol Speaker {
  2. class func speak()
  3. }

则下列实现协议的遵守者定义正确的是(  )。

A.

  1. class Dog : Speaker {
  2. static func speak() {
  3. println("Wang Wang!")
  4. }
  5. }

B.

  1. class Dog : Speaker {
  2. class func speak() {
  3. println("Wang Wang!")
  4. }
  5. }

C.

  1. struct Cat : Speaker {
  2. static func speak() {
  3. println("Miao Miao!")
  4. }
  5. }

D.

  1. struct Cat : Speaker {
  2. class func speak() {
  3. println("Miao Miao!")
  4. }
  5. }
  1. 有以下协议定义:
  1. protocol Speaker {
  2. mutating func speak()
  3. }

则下列实现协议的遵守者定义正确的是(  )。

A.

  1. class Dog : Speaker {
  2. mutating func speak() {
  3. println("Wang Wang!")
  4. }
  5. }

B.

  1. struct Cat : Speaker {
  2. mutating func speak() {
  3. println("Miao Miao!")
  4. }
  5. }

C.

  1. class Dog : Speaker {
  2. func speak() {
  3. println("Wang Wang!")
  4. }
  5. }

D.

  1. struct Cat : Speaker {
  2. func speak() {
  3. println("Miao Miao!")
  4. }
  5. }
  1. 编程题:编写一个Array扩展,使其能够计算集合的元素之和。

  2. 编程题:编写程序包含协议、基类和子类等内容。

  3. 编程题:编写程序包含协议、基类、子类和扩展等内容。