美文网首页swift学习笔记
第二十四章 访问控制

第二十四章 访问控制

作者: 运柱 | 来源:发表于2017-07-25 14:27 被阅读0次

swift与c++不同,没有头文件,所有的实现都在源文件里。建立一个工程,就是建立了一个新模块。一个模块可以使用import导入另外一个模块。

swift的访问控制和模块、源文件的概念有关,swift定义了5个访问级别:

开放访问公开访问可以访问同一模块源文件中的任何实体,在模块外也可以通过导入该模块来访问源文件里的所有实体。通常情况下,框架中的某个接口可以被任何人使用时,你可以将其设置为开放或者公开访问。

内部访问可以访问同一模块源文件中的任何实体,但是不能从模块外访问该模块源文件中的实体。通常情况下,某个接口只在应用程序或框架内部使用时,你可以将其设置为内部访问。

文件私有访问限制实体只能被所定义的文件内部访问。当需要把这些细节被整个文件使用的时候,使用文件私有访问隐藏了一些特定功能的实现细节。

私有访问限制实体只能在所定义的作用域内使用。需要把这些细节被整个作用域使用的时候,使用文件私有访问隐藏了一些特定功能的实现细节。

用修饰符open,public,internal,fileprivate,private来声明实体的访问级别。

默认的访问级别是内部访问。

public class SomePublicClass {                  // 显式公开类

    public var somePublicProperty = 0            // 显式公开类成员

    var someInternalProperty = 0                // 隐式内部类成员

    fileprivate func someFilePrivateMethod() {}  // 显式文件私有类成员

    private func somePrivateMethod() {}          // 显式私有类成员

}

class SomeInternalClass {                      // 隐式内部类

    var someInternalProperty = 0                // 隐式内部类成员

    fileprivate func someFilePrivateMethod() {}  // 显式文件私有类成员

    private func somePrivateMethod() {}          // 显式私有类成员

}

fileprivate class SomeFilePrivateClass {        // 显式文件私有类

    func someFilePrivateMethod() {}              // 隐式文件私有类成员

    private func somePrivateMethod() {}          // 显式私有类成员

}

private class SomePrivateClass {                // 显式私有类

    func somePrivateMethod() {}                  // 隐式私有类成员

}

元组类型访问级别

元组的访问级别由最严格的元素访问级别决定。

函数访问级别

函数访问级别由最严格的参数或者返回类型的访问级别决定。但是,如果这种访问级别不符合函数定义所在环境的默认访问级别,那么就需要明确地指定该函数的访问级别。

枚举类型访问级别

枚举成员的访问级别与枚举类型相同,不能单独为枚举成员设置访问级别。

子类

子类的访问级别不能高于父类的访问级别。

相关文章

  • 第二十四章 访问控制

    swift与c++不同,没有头文件,所有的实现都在源文件里。建立一个工程,就是建立了一个新模块。一个模块可以使用i...

  • Nginx防盗链、Nginx访问控制、Nginx解析php相关配

    image.png Nginx访问控制 Nginx访问控制Nginx访问控制 目录访问控制 正则匹配文件访问控制 ...

  • 汇总:CISSP重点安全知识

    访问控制模型: 访问控制分为自主访问控制(DAC)和非自主访问控制1、自主访问控制自主访问控制允许客体的所有者、创...

  • 远去的梦(长篇小说连载)

    第二十四章 唆使

  • 访问控制

    1. 访问控制原理1.1 访问控制策略 2. 主体、客体和访问权 3. 自主访问控制3.1 自主访问控制的主要特点...

  • (翻译)fabric1.2.1新特性-访问控制列表

    访问控制列表 Access Control Lists(ACL) 什么是访问控制列表? fabric 使用访问控制...

  • 访问控制

    private 私有,只能在其定义域内使用 fileprivate 文件级别,整个swift源文件内有效 inte...

  • 访问控制

    在Swift语言中,访问修饰符有五种,分别为fileprivate,private,internal,public...

  • 访问控制

    在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访...

  • 访问控制

    1>模块和源文件 Swift 中的访问控制模型基于模块和源文件这两个概念。 模块指的是独立的代码单元,框架或应用程...

网友评论

    本文标题:第二十四章 访问控制

    本文链接:https://www.haomeiwen.com/subject/ibvwkxtx.html