swift中的访问控制关键字

swift3.0以后,访问控制关键字一共有5中,控制权限范围从高到低依次为

open > public > internal > fileprivate > private

1、open(开放的)

访问权限最高的一个,可以被任何人访问,override以及继承,不限制范围.好多系统库的属性都有open修饰的

2、public(公共使用)

仅次于open范围,也是可以被任何人访问,但是只限在同一module下才能被override和继承.好多系统库协议的函数都有public修饰的

3、internal(内部的,默认)

默认的权限范围,即不写的时候默认是internal修饰的。在同一module可以访问。

4、fileprivate(file+private)

同一个swift源文件下可以访问,一个.swift文件下,不同类之间是可以访问的.

4、private

权限范围最低的,只能在当前类里面访问,分类也不行.

注: 低级别权限范围修饰的类别里面不能包含比之高级别的修饰。例如:internal修饰的类里面不能包含public修饰的属性和函数等

注:module,一个app就是一个模块,一个第三方框架,第三发APi,第三方库,framework都是一个模块


final关键字,用来修饰类,属性和方法函数, 被final修饰的不能被继承和override,用来做权限控制.


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,512评论 0 4
  • 这几天的信息量太乱,只能把心放在手头的工作上,沉不下心来写作业。不过今天发现自己有了一点小小的进步,和主任一起去...
    love_竹林深处阅读 275评论 0 0
  • 戎戎是我小学的同学,初一时,我们分到了一个班,且成为了同桌。巧的是,高中也读了 痛一所高中,高一又分到了以班!高中...
    小武Adam阅读 152评论 0 0
  • 基本情况 复盘主题: 对互联网首次思维导图授课进行复盘,找出不足,持续改进。 基本信息: 复盘时间:2017031...
    艾米125阅读 217评论 0 0