美文网首页
关于open,public,fileprivate,privat

关于open,public,fileprivate,privat

作者: 舟_e9ce | 来源:发表于2019-04-18 15:03 被阅读0次

基于类内部属性
private:只能用于本类,或extension里面,超出范围报错。
fileprivate:用于本类,extension,继承子类(与父类位于同一个源文件中)中
public: 用于本类,extension,继承子类(可以不与父类位于一个源文件)中,继承子类中extension中
open:用于本类,extension,继承子类(可以不与父类位于一个源文件)中,继承子类中extension中

import UIKit

class tempA: NSObject {
    
    open var A : Int = 0
    public var D : Int = 0
    fileprivate var B : Int = 0
    private var C : Int = 0
    func tempAA() {
    }
   
    
}

extension tempA {
    func aaaa() {
        A = 1
        B = 2
        C = 3
        D = 4
    }
}

class tempC: tempA {
    
    func temC() {
        A = 1
        B = 2
        D = 3
    }
}

class tempD: NSObject {
    
    func tempDD() {
//        A = 1
//        B = 2
//        D = 3
    }
}
import UIKit

class tempB: tempA {
    func tempBB()  {
        A = 1
        D = 2
    }
    
}

extension tempB {
    func tempBB2() {
        A = 1
        D = 1
    }
    
}

class tempE: tempB {
    
    func tempB()  {
        A = 0
        D = 0
    }
    
}

基于类外部定义变量
不能创建open修饰的变量(会提示Only classes and overridable class members can be declared 'open'; use 'public'),只有类和可覆盖的类成员可以声明为‘open’请使用‘public’
fileprivate 跟private 作用范围一样
public 完成开放,全局变量


图片.png

internal 系统默认的修饰词
作用范围 open > public > internal > fileprivate > private

相关文章

网友评论

      本文标题:关于open,public,fileprivate,privat

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