访问权限

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:只能在当前包中使用.

作用域:后面的所有的成员变量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。