关于objective-c中的set和get方法

本文详细介绍了Objective-C中的set和get方法的作用与命名规范,并通过实例代码展示了如何使用这些方法来实现对成员变量的安全访问及计算相关属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、关于objective-c中的set方法
1、作用:
他的作用是提供一个方法给外界设置成员变量,可以在方法里面对相应参数进行相应过滤。
2、命名规范:
1>set方法名必须以set开头;
2>set后面跟上成员变量的名称,而且成员变量的首字母必须大写
3>他的返回值一定是void;
4>一定要接受一个参数,而且参数类型和成员变量要保持一致;
5>形参名称不能和成员变量保持一致


二、关于objective-c中的get方法

1、作用:
他的作用是返回对象内部的成员变量。
2、命名规范:
1>get命名要跟成员变量保持一致
2>get方法肯定有返回值;
3>他不需要接受任何参数;


注:  成员变量的命名规范:一定要以_(下划线)开头
  作用: 1、让成员变量可以和get方法的名称区分开。
    2、每当我们一看到下划线开头的变量便能知道,该变量是成员变量。

三、get方法的使用
关于set方法和get方法使用细节,通过代买来体会理解会更加饱满。代码如下
我们需要设计一个成绩类,包括:
* C语言成绩(可读可写)                                // 需要set 、get方法
* OC成绩(可读可写) // 需要set 、get方法
* 总分(只读) // 需要get方法
* 平均分(只读) // 需要get方法

代码如下:
#import <Foundation/Foundation.h>

@interface Score : NSObject
{
int _cScore; // C语言成绩
int _ocScore; // OC成绩

int _totalScore;// 总分
int _averageScoe; // 平均分
}

- (void)setCScore:(int)cScore;                                  // CScore 的set方法的声明
- (int)cScore;                                 //CScore 的get方法的声明

- (void)setOcScore:(int)ocScore;                                // oCScore 的set方法的声明
- (int)ocScore;                              // oCScore 的get方法的声明

- (int)totalScore;  // totalScore 的get方法的声明
- (int)averageScore;  // averageScore 的get方法的声明

@end

@implementation Score
- (void)setCScore:(int)cScore
{
_cScore = cScore;

// 计算总分
_totalScore = _cScore + _ocScore;  // set方法的一大好处就是可以监听程序,每当程序中,有新的值对成员变量进行改变
_averageScoe = _totalScore/2; 时,就可以在set方法里面监听到,然后对新值进行操作,非常方便,比如这个例子,
} 我们就可以在更新Cscore的时候,求出现在的总分和平均值。
- (int)cScore
{
return _cScore;
}

- (void)setOcScore:(int)ocScore
{
_ocScore = ocScore;

// 计算总分
_totalScore = _cScore + _ocScore; // set方法的一大好处就是可以监听程序,每当程序中,有新的值对成员变量进行改变
_averageScoe = _totalScore/2;   除了在Cscore中进行监听外,同时还在另一成员变量ocscore中进行监听。
}
// 监听成员变量的改变

- (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;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值