getter 和 setter 是对实例变量的一个设置和调用的作用
平时我们的实例变量都是@public的形式,这个形势的实例变量谁都可以去修改,跟我们现实中的某种职业一样。
这个时候就体现出封装的作用了,我定义的实例变量只能我让你用,你才能用。我让你怎么去用,你才能怎么取用。
怎么才能实现我的霸权注意呢? 这个时候@protected的作用的出来了。我给我的数据建立了一个笼子。如果你要用需要用
我给你的钥匙才能进去用我的东西。这个就是getter ,如果我想让你怎么用,你才能怎么用的时候 这个就是setter
当然如果一味的去写 setter 和 getter的这些程序体 ,那样加大了很多编程时间。
这个时候 就有一个东西出现 @property
它就是属性
很强大的一个东西, 具体可以实现的作用为, 不用再定义SET 和 GET 可以直接定义实例变量 。目前就知道这么多
@property 要跟 @synthesize 两个配对使用。
如果在主函数里调用对象的时候,程序的指向就会跑到 @synthesize这个位置。 等它改变数据值后 再返回主函数
跟C语言的函数体有一定的相似之处。。
格式为 @property ((如果重新覆盖了SET或者GET要在这里定义一下,比如getter=getName),assign,non atomic)Nsstring * name
@synthesize name
一般情况下 我们的实例变量名字和方法名不能完全一样,其实一样也可以 ,但是一般像我这种新手对区分还不是很熟悉的时候最好给改下
比如
@synthesize name=_name
@synthesize name=newname
平时我们的实例变量都是@public的形式,这个形势的实例变量谁都可以去修改,跟我们现实中的某种职业一样。
这个时候就体现出封装的作用了,我定义的实例变量只能我让你用,你才能用。我让你怎么去用,你才能怎么取用。
怎么才能实现我的霸权注意呢? 这个时候@protected的作用的出来了。我给我的数据建立了一个笼子。如果你要用需要用
我给你的钥匙才能进去用我的东西。这个就是getter ,如果我想让你怎么用,你才能怎么用的时候 这个就是setter
当然如果一味的去写 setter 和 getter的这些程序体 ,那样加大了很多编程时间。
这个时候 就有一个东西出现 @property
它就是属性
很强大的一个东西, 具体可以实现的作用为, 不用再定义SET 和 GET 可以直接定义实例变量 。目前就知道这么多
@property 要跟 @synthesize 两个配对使用。
如果在主函数里调用对象的时候,程序的指向就会跑到 @synthesize这个位置。 等它改变数据值后 再返回主函数
跟C语言的函数体有一定的相似之处。。
格式为 @property ((如果重新覆盖了SET或者GET要在这里定义一下,比如getter=getName),assign,non atomic)Nsstring * name
@synthesize name
一般情况下 我们的实例变量名字和方法名不能完全一样,其实一样也可以 ,但是一般像我这种新手对区分还不是很熟悉的时候最好给改下
比如
@synthesize name=_name
@synthesize name=newname