【Swift】访问权限

【Swift】

一、

1、在swift中一个工程(或者一个第三方framework、target)相当于一个moudle

2、一个.swift文件为一个file

3、一个class、struct、enum可以看成一个class

在swift中这些访问权限正是基于上面的moudle、file、class来区分的

二、

访问权限大小顺序:open > public > internal > fileprivate > private,可以修饰属性、类、方法等

1、private:只能允许在当前class里面访问,子类也不能访问。

2、fileprivate:允许在当前file文件中访问。

3、internal:创建的class、struct、enum等默认为internal,可以在整个moudle访问。

4、public:允许在其他的moudle里面访问,但是不能继承、重写。

5、open:允许在其他的moudle里面访问,可以继承、重写。

三、

对比【OC】中访问权限:@private @protect @public @package

1、@private:作用于自身类

2、@protect:可以不用写,创建的成员变量默认为protect,作用于自身类或者子类

3、@puclic:作用范围最大,跨package不能使用

4、@package:介于public与private之间的,如果是在其他包中访问那么就是就是private的,如果实在当前代码所在的包中访问就是public的

注意:1、OC中的访问权限只能修饰变量,不能像swift修饰方法、枚举、结构体等。

2、@interface中声明的成员变量默认为protect,@impletation中声明的成员变量默认为private

你可能感兴趣的:(【Swift】访问权限)