Objective-C学习笔记(十六)——成员变量

本文探讨Objective-C中的成员变量与属性的区别。成员变量在类内部可访问,而在类外部不能直接访问。通过示例代码展示如何在类内设置和访问成员变量,并指出属性将在后续章节中讲解。

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

       在以前学习C++,Java面向对象语言的时候,类Class中会有成员变量这个概念,同时这个成员变量也可称之为这个类的属性,我们成员变量和属性当成一回事。但是来到OC中,情况就完全不同了。成员变量和属性是两个截然不同的概念,我们来慢慢研究。

(1)在新建完类后,在People.h中加入如下代码:

@interface People : NSObject
{
    
    NSString *_peopleName;
    int _peopleAge;
    int _peopleSex;

}

@end
分析:此时的_peopleName,_peopleAge,_peopleSex都是类的成员变量,只能在类内进行调用。


(2)我们在People.m(People类内)文件中对成员变量进行访问,进行赋值。注意此时在类外main.m文件中无法访问这几个成员变量。

#import "People.h"

@implementation People
-(instancetype) init
{
    self =[super init];
    if (self) {
        _peopleName=@"张三";
        _peopleAge=23;
        _peopleSex=1;
    }
    return self;
}


@end

(3)我们使用get,set方法来实现对这些成员变量的操作:在People.h文件中对方法进行声明:

-(void)setName:(NSString *)name;
-(NSString *)getName;

(4)然后在People.m中实现该方法:setName()表示对 _peopleName赋值,getName()表示获得_peopleName的值。

-(void)setName:(NSString *)name{

    _peopleName=name;
}

-(NSString *)getName{

    return _peopleName;
}

(5)在main.m中调用这两个方法:

People *p1 = [[People alloc] init];//OC正规的创建对象方式;
        
        [p1 setName:@"chenyufeng"];//对成员变量赋值,注意两边要使用[];
        NSLog(@"peopleName=%@",[p1 getName]);//获得成员变量的值;


(6)输出结果:

表示在类外main.m中成功对只有在类内才能访问的成员变量进行赋值和访问。关于属性,我们下一节再讨论。


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值