用来修饰属性,可以限定对象的属性在那一段范围之中访问。
@private
: 私有,被其修饰的属性只能在本类的内部访问。
@protected
: 受保护的 被其修饰的属性只能在本类以及本类的子类中访问。只能在本类和子类的方法实现中访问。
@package
: 被其修饰的属性,可以在当前框架中访问。
@public
: 公共的,被其修饰的属性可以在任意地方访问。
如果不为属性指定访问修饰符 默认:protected
子类仍然可以继承父类的私有属性。就算父类的属性是private,只不过在子类当中无法直接访问从父类继承过来的私有属性,可以通过set get方法来访问。访问修饰符只能用来修饰属性,不能用来修饰方法。
访问修饰符的作用域
从写访问修饰符的地方开始往下,直到遇到另外一个访问修饰符的或者结束大括弧为止,中间的所有的属性都应用这个访问修饰符。使用建议
@public 无论什么情况下都不要使用,属性不要直接暴漏给外界。
@private 如果属性只想在本类中使用,不想再子类中使用。
@protected 如果你希望属性只在本类和本类的子类中使用。
description 方法
description方法是定义在NSObject之中的。我们通过重写description方法来修改NSLog的输出形式。NSLog的底层就是description方法。