Swift学习笔记系列——(24)访问控制

前端之家收集整理的这篇文章主要介绍了Swift学习笔记系列——(24)访问控制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Tags: Swift 学习笔记

发布时间:2015-08-24
修改时间:2015-08-25
修改内容添加“单元测试对象的访问级别”一节内容
作者:Erwin
博客地址:技术杂货铺
欢迎转载,转载请注明出处。

Swift学习笔记系列——(24)访问控制

访问控制的对象

  1. 单个的类、结构体和枚举
  2. 属于1的属性方法、构造方法和下标
  3. 协议的适用范围

模块和源文件

访问控制的基础

  • 模块

一系列代码,Xcode中的一个构造目标

单独的源代码文件

三种访问级别

  • public

本模块的任意源文件内可以访问
导入所在模块的其他模块的源文件可以访问

  • Internal

默认的访问级别
同一模块的任意源代码中都可以访问

  • Private

同一源文件可以访问

访问级别的指导原则

衍生物的访问级别不能高于母体。

默认访问级别

Internal

单元测试对象的访问级别

毫无疑问,声明为public的测试对象可以被测试代码访问;要想访问internal的实体,可以在测试模块的导入声明处用@testable标记

访问控制具体规则

使用场景 默认 限制 选项
自定义类型 声明为private的类型,其成员默认是private的。
声明为public或internal的类型,其成员默认是internal的
元组 元组的访问级别要取元组成员访问级别最低
函数 函数参数类型和函数返回值类型的最低者
枚举 枚举分支 和枚举类型访问级别一致 可以指定访问级别
枚举初始值和组合值 不能低于枚举类型的访问级别
嵌套类型 同定制类型
子类型 子类型自身 子类型的访问级别不能高于超类
子类型重写 重写可以提高访问级别
常量、变量属性和下标 自身 不能高于所处类型和自身类型的访问级别
getter和setter 所属于对象的访问级别 可以单独设置setter为较低的访问级别
构造方法 自定义构造方法 不能高于它要构造的类型的访问级别
必要构造方法访问级别和所在类的访问级别一致
默认构造方法 和访问类型一致
public类型的构造方法默认为internal
结构体的默认成员构造方法 internal,一旦有存储舒适是private则为private 可以指定为public
协议 协议自身 协议成员的访问类型和协议的访问类型一致
协议继承 新协议最多具有和被继承协议相同的访问级别
协议实现 类型实现一个协议的访问级别,要取类型和协议的访问级别最低者,协议要求的每一个部分不能低于这个访问级别。 类型可以用用低于自身的访问级别实现一个协议
扩展 扩展自身 添加的成员,具有扩展类型成员的默认访问级别 给扩展指定明确的访问级别,同时也是指定了扩展内容的访问级别
可以给单个成员指定访问级别
用扩展实现协议 协议实现的默认访问级别和协议的访问级别一致 类型实现一个协议的访问级别,要取类型和协议的访问级别最低者,协议要求的每一个部分不能低于这个访问级别。
添加对协议的实现,不能指定访问级别
泛型 一个泛型类型或者泛型方法的访问级别要在 其自身的访问级别与其类型参数访问级别中取最低的
类型别名/联合类型 类型别名的访问级别要等于或者低于它所替代类型的访问级别

本章思维导图

说明:紫色字体存疑

原文链接:https://www.f2er.com/swift/326175.html

猜你在找的Swift相关文章