您的位置:首页 > 运维架构

private、fileprivate、public、open修饰符的作用和区别

2017-11-29 17:26 513 查看

1、private 修饰符

只允许在当前类中调用,不包括 Extension

private 现在变为了真正的私有访问控制

用 private 修饰的方法不可以被代码域之外的地方访问

2、fileprivate 修饰符

fileprivate 其实就是过去的 private。

其修饰的属性或者方法只能在当前的 Swift 源文件里可以访问。

即在同一个文件中,所有的 fileprivate 方法属性都是可以访问到的。

class A {
fileprivate func test(){
print("this is fileprivate func!")
}
}

class B:A {
func show(){
test()
}
}


3、public 修饰符

修饰的属性或者方法可以在其他作用域被访问

但不能在重载 override 中被访问

也不能在继承方法中的 Extension 中被访问

4、open 修饰符

open 其实就是过去的 public,过去 public 有两个作用:

修饰的属性或者方法可以在其他作用域被访问

修饰的属性或者方法可以在其他作用域被继承或重载 override

5、internal修饰符

顾名思义,internal是内部的意思,即有着internal访问权限的属性和方法说明在模块内部可以访问,超出模块内部就不可被访问了。在Swift中默认就是internal的访问权限。

从高到低排序如下:

open > public > interal > fileprivate > private
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: