码迷,mamicode.com
首页 > 其他好文 > 详细

OC中实例变量可见度、setter、getter方法和自定义初始化方法

时间:2015-04-09 21:17:41      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识
实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下:
技术分享
 
 
具体的使用示例如下:
 
技术分享
 
编程时默认的可见度是@protectde,为什么不使用@public呢?
因为OC是面向对象编程,使用@public关键字,暴漏了类内部的细节,从而不符合面向对象语言的三大特性之一——封装
实例变量经过@protectde修饰之后,我们就不能在该类和其子类外操作,例如mian.m文件。那么我们如何才能在mian.m文件中设置person的_name,读取person的_name。
这就需要我们去添加两个方法即setter和getter方法
在OC里,为实例变量赋值的方法成为setter(设置器)
读取实例变量值的方法称为getter(访问器)
赋值(setter):通过方法传入参数,在类的内部实现实例变量的赋值
取值(getter):通过方法获取实例变量的值
OC里规定了setter和getter的书写格式
如果一个实例变量是int age;或者int_age;
setter的书写格式如下: - (void)setAge:(int)age;即set + 首字母大写的实例变量名(忽略下划线)
getter的书写格式如下: - (int)getAge;即返回值类型与变量类型一致,方法名与实例变量名相同(忽略下划线)
具体示例如下:
Person.h文件中:
 
技术分享
 
Person.m文件中:
 
 
技术分享
 
多参方法:
 
技术分享
 
OC中的方法分为两种:类方法和实例方法
类方法:只能类使用,例如:+ (id) alloc 注:类方法中不能使用实例变量
实例方法:只能对象使用,例如:_(void)sayHi
技术分享
类中不能出现同名方法
“ :”标识参数,不能省略。有冒号必须有参数
方法的使用
 
技术分享
 
自定义初始化方法
h文件中:
技术分享
 
m文件中:
技术分享
 
#import
导入头文件,即:导入头文件中的内容到当前类。
#import“”导入自定义类。#import<>导入类库中的头文件
功能类似C语言中的#include,但是可以避免文件被重复导入
 

OC中实例变量可见度、setter、getter方法和自定义初始化方法

标签:

原文地址:http://www.cnblogs.com/496668219long/p/4411108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!