OC语言—— set 和 get 方法

一,概念

  为了管理某个成员变量不让外界访问,也为了更好的管理内存,就须要用set方法把它封装起来。另外当你须要输入一个值时,比如:年龄,这些没有负数的值,所以要过滤掉负数。达到保护数据,内存不容易泄漏。

二,set的命名规范   

   set方法以减号开头,它没有返回值

   set后面跟的字须要大写

   形参的数据类型和成没变量的一样,形参名称不能和成员变量然一样,所以加下划线区分开。

   这时候可以封装起来,故就不用@public

get 方法

 一,概念

  如果只看看,不修改的话,这时就只用到get方法。返回对象是内部成员。

二,命名规范

  苹果官方规定不能以get开头,方法名,数据类型都和成员变量一样。

使用场合:

   须要封装的时候

   只须要看,不须要改时。

下面通过例子来说明一下

  设计一个类,计算C,OC语言的总分,平均分。

#import <Foundation/Foundation.h>

@interface Score : NSObject
{
    int _cScore; // C语言成绩
    int _ocScore; // OC成绩
    
    int _totalScore;// 总分
    int _averageScoe; // 平均分
}

- (void)setCScore:(int)cScore;
- (int)cScore;

- (void)setOcScore:(int)ocScore;
- (int)ocScore;

- (int)totalScore;
- (int)averageScore;

@end

@implementation Score
- (void)setCScore:(int)cScore
{
    _cScore = cScore;
    
    _totalScore = _cScore + _ocScore;
    _averageScoe = _totalScore/2;
}
- (int)cScore
{
    return _cScore;
}

- (void)setOcScore:(int)ocScore
{
    _ocScore = ocScore;
    
    _totalScore = _cScore + _ocScore; //总分和平均分封装到set里,下次改C或OC成绩这里会自动改
    _averageScoe = _totalScore/2;
}

- (int)ocScore
{
    return _ocScore;
}

- (int)totalScore
{
    return _totalScore;
}
- (int)averageScore
{
    return _averageScoe;
}
@end


int main()
{
    Score *s = [Score new];
    
    [s setCScore:90];
    [s setOcScore:100];
    
    [s setCScore:80];
    
    
    int a = [s totalScore];
    
    NSLog(@"总分:%d", a);
    
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值