封装的概念和原理,set和get方法

本文介绍了一个使用Objective-C编写的Person类,通过@interface和@implementation展示了如何定义和实现属性的getter和setter方法。该类包括姓名、年龄、性别和身高等属性。

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

.h文件

#import <Foundation/Foundation.h>

typedef enum {kSexMan, kSexWoman, kSexYao} Sex;

@interface Person : NSObject
{
    // 姓名
    NSString *_name;
    // 年龄
    int _age;
    // 性别
    Sex _sex;
    // 身高
    float _height;
}

// 给每一个实例变量定义两个方法:设置变量的方法(set)获取变量值的方法(get)
// set方法的书写规范:
// 1)set方法一定是一个对象方法
// 2)set方法必须以set开头
// 3)set方法一定不能有返回值
// 4)set之后跟的是 实例变量去掉下划线,并且首字母大写
// 5)set方法一定有参数,而且参数的类型和实例变量的类型一致
// 6)set方法的形参名 一般是 去掉下划线的实例变量名
// 7)形参名不能和实例变量名同名
// 8) set方法实现中,一定要用形参给实例变量赋值

// _name的set方法,以后对name设置值,一律使用此方法
- (void)setName:(NSString *) name;
- (void)setAge:(int)age;
- (void)setSex:(Sex)sex;
- (void)setHeight:(float)height;

// get方法书写规范
// 1)get方法一定是一个对象方法
// 2)get方法一定有返回值,返回值的类型和实例变量的类型要一致
// 3)get方法的方法名 是去掉下划线的实例变量名
// 4)get方法一定没有参数
// 5)get方法的实现中,一定是返回值实例变量值

// 以后获取name的值,都统一的使用name的get方法
- (NSString *)name;
- (int)age;
- (Sex)sex;
- (float)height;

@end

.m文件

#import "Person.h"

@implementation Person

//***************** set 方法的实现 ****************
- (void)setName:(NSString *) name
{
    // 给实例变量赋值
    _name = name;
}
- (void)setAge:(int)age
{
    _age = age;
}
- (void)setSex:(Sex)sex
{
    _sex = sex;
}
- (void)setHeight:(float)height
{
    _height = height;
}

//***************** get 方法实现 *****************
- (NSString *)name
{
    return _name;
}
- (int)age
{
    return _age;
}
- (Sex)sex
{
    return _sex;
}
- (float)height
{
    return _height;
}
@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值