可见度和方法

实例变量可见度

可见度:
可见度 特点
public(公有的) 在类的内外部都可以操作
protected(系统默认,受保护的) 只能在类和子类中操作
private(私有的) 只能在该类内访问
{
    @public
    NSString *_perName;
    NSString *_perSex;
    @protected
    NSInteger _perAge;
    @private
    NSString *_perHobby;
}
  • 一般不使用@public,原因如下
    • 容易暴漏类内部的细节
    • 不符合”封装的特性”

方法

方法分类

OC中的方法可以分为两种

  • 类方法 如:+(id)alloc
  • 实例方法 如:-(void)sayHi

注意:类方法中不能使用实例变量,且只能类使用. 实例方法只能对象使用

 - (void) setStuName:(NSString *) stuName

其中

  • “-“为方法类型表示符,类方法为”+”
  • (void)为返回类型
  • setStuName为参数形容词
  • (NSString *)为参数的类型
  • stuName 为参数名

方法名就是方法语句去掉类型表示,返回类型,参数类型,参数名以及空格所剩的部分
即为setStuName:
注意:类中不能出现同名方法.”:”为标示参数,不可以省略,有冒号必须有参数

setter,getter

对实例变量赋值或者取值的时候使用

赋值方法:setter,为设置器

读取实例变量值的方法:getter,为访问器

赋值语句:当对多个语句进行操作的时候,称为赋值语句

Person.h

// 设置器
- (void) setPerName:(NSString *)perName
{
    _perName = perName;
}
// 访问器
- (NSString *)perName
{
    return _perName;
}
// 赋值语句
- (void) setPerName:(NSString *)perName
          setPerSex:(NSString *)perHobby;

Person.m

// 设置器
- (void) setPerName:(NSString *)perName
{
    _perName = perName;
}
// 访问器
- (NSString *)perName
{
    return _perName;
}
// 赋值语句
- (void) setPerName:(NSString *)perName
          setPerSex:(NSString *)perHobby;
{
    _perName = perName;
    _perHobby= perHobby;
}

注意

  • 如果写声明但是没实现,会在.m文件中出现警告,告诉我们应该把方法补全

  • 无论setter 还是 getter 的内部操作的是实例变量

  • 每一个实例变量都需要一对的setter和getter方法

方法使用

当我们想调用方法时,使用

[person sayHi]

即为消息机制,对应的就是
[消息的接收者 具体要做的事]

自定义初始化方法
  • -(id)init 一般的初始化方法只能给变量设置默认值,不灵活
  • -(id)initWithName: 自定义初始化方法,可以根据需求来定义

.h

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值