swift
swift中访问权限是基于模块
,源文件
,类
这三个概念
- internal:默认.在本模块中(一个target就是一个模块)都可以进行访问;子类可以继承.
- private:当前类私有;子类不可以继承.
- fileprivate:在当前源文件中可以访问;子类不可以继承.
- public:在同一个模块内,类似于internal.在不同的模块中,如果是修饰类,可以访问,子类不可以继承;如果修饰方法,可以访问,不能被重写(overwirte)
- open:在同一个模块内,类似于internal.在不同的模块中,如果是修饰类,可以访问,子类可以继承;如果修饰方法,可以访问,可以被重写(overwirte)
作用域只有一行,一般写作
internal var a : Int;
private var b : Int;
fileprivate var c : Int;
public var d : Int;
open var e : Int;
Objective-C
OC中权限和swift不一样,这些关键字只能作用于成员变量,不能作用于方法和类.如果不想让外部文件访问,那么就将成员变量定义在.m
文件中(默认为@public);如果想让外部文件访问,那么就将成员变量定义在.h
文件中(默认为@private).
- @protected:默认.只能在当前类中访问;子类可以继承.
- @private:只能在当前类中访问;子类不能继承.
- @public:在任何地方都可以访问.
- @package:只能在当前包中使用.
作用域:后面的所有的成员变量