访问权限

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

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

你可能感兴趣的:(访问权限)