美文网首页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() {}                  // 隐式私有类成员

    }

    元组类型访问级别

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

    函数访问级别

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

    枚举类型访问级别

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

    子类

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

    相关文章

      网友评论

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

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