object-c之instance variables和property

object-c中定义类的结构如下

@interface Fraction:Parents

{

type1 value1;

type2 value2;

}

@property(nonatomic,week) id variable;

-(void)method;

@end

对上面的结构之前也看了很多次,但是对于Instance Variables和property始终没有明白用意,今天将学习记录一下

1、@interface的实例变量的默认权限是@protected的,可以在实例方法中直接访问;

2、@property声明的属性,实际上是给编辑器看的,便于编辑器生成setter和getter方法,所以在实例方法中不能直接访问,访问时需要加上self.value;property的默认设置为atomic和readwrite;

既然已经了解了实例变量和property的区别,那么我还需要知道类方法和实例方法的区别

类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。
注意点一:类方法
1,类方法可以调用类方法。
2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
注意点二:self的规则
大家需要记住下面的规则:
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。(引自:http://blog.163.com/xiaodaier@yeah/blog/static/168967079201212064820459/

   object-c中并没有提供类静态变量,只能以文件作用域的static变量代替,然后由类的成员函数来操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值