[2]姥爷幽默谈Objective-C(getter,setter,init 方法、和类方法以及常用数据类型的介绍)

本文深入探讨Objective-C中的setter和getter方法的语法结构及实现,着重介绍了如何通过这些方法安全地操作类成员变量。同时,文章详细阐述了init方法的用途,包括初始化类属性,并提供了实例代码。此外,文章还涵盖了Objective-C中的数据类型,如id、CVoid*、OCidinstanceType等,并解释了它们在不同场景下的应用。

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

随着时间的跟进,我们来到了今天,今天会介绍Objective-C中方法的语法结构,着重介绍几类型重点方法捎带一点数据类型。
1. setter 和 getter 方法

 setter方法是用来给成员变量赋值的。
getter方法    是用来取成员变量的值的。
它们有一个共同点就是它们都有确定的命名方式,不能随意命名,否则就不是getter和setter方法了。
setter方法的命名规则:返回值类型必须是void,方法名字应该是set+Xxx,set加上首字母大写的成员变量的名字,参数类型也要和成员变量的类型相对应。
getter方法的命名规则:返回值类型要和已有的成员变量的类型相对应,方法名应该是以成员变量名命名的,没有参数。

setter和getter方法

-(void)setAge:(int)newAge;  
-(int)age;  

setter和getter方法的实现

-(void)setAge:(int)newAge  
{  
    age=newAge;  
}  
-(int)age  
{  
    return age;  
}  

2.init方法

init方法主要是为了给类初始化用的,打个比方,现在有一个类叫猫,它一出身总会有重量吧!就像这种需求,就需要我们在创建它的时候就初始化它的属性,这个时候就用到了init方法。init方法可以有无参的,也可以是有参数的。它的命名也是有规则的,就是初始化方法名称都是以init开始的。基础框架中提供的initWithFormat:,initWithObject:以及initWithObjectAndKey:等方法的命名就是遵循这个惯例的。初始化方法的返回值应该id类型的。返回值是id类型是出于这样的考虑:初始化方法返回值不是具体的类类型,是可变的,这取决于上下文。例如:NSString类提供了一个initWithFormat:的方法。然而,当向NSMutableString(NSString类的派生类)的对象发送initWithFormat:消息的时候,其返回的是NSMutableString类型的对象,而不是NSString类型的。在实现自定义初始化方法的时候,最终都是要调用一个“指定的”初始化方法。当你实现init方法时有必要判断self当前对象指针是否为空,具体代码如下init的格式必须要有的。
-(id) init  
{  
    //给self赋值为超类的“指定的”初始化方法的返回值  
    //也就是NSObject类的init方法  
    self = [super init];  
    if (self)  
    {  
        // insert code here....
        createDate = [[NSDate alloc] init];  
    }  

    return self;  
}  

3.类方法

1)首先+开头(返回值)方法名称 方法名称一般是以类名开头,2)类方法不能使用对象来调用 ,3)用类名来调用的,类方法不能访问成员变量和成员方法,4)类方法之前没有对象。那么类方法为什么不能用对象来调用呢? 因为没有self当前对象指针,那么为什么没有当前对象指针呢?因为这是它的特性决定的,所以呢,你就直接拿类名调用类方法就好了。
+ (Dog *)createInstance:(int)newWeight{

    Dog *dog = [[Dog alloc]init];
    return dog;
}

4.数据类型

id  instanceType
C     Void *   泛型
OC   id     instanceType  泛型
可以指向任何继承自NSObject类 所创建的对象,所有的类都是直接或者间接的继承NSObject。OC中所有的对象都可以使用 id 来指向。

2)布尔类型 Boolean  
    1、如果 事件为真 那么 布尔返回值 就是 1 或者 true 或者YES;
    2、如果 事件为假 那么 布尔返回值 就是 0 或者false 或者NO。
    布尔值 初始化的时候 默认为假 也就是值为0。
    声明的时候 BOOL + 变量名一般用于做标志 而且 是只有是或者否俩种情况的时候才使用

NSInteger NSInteger 有符号整型 或者 长整型 %d %lu %ld
NSUInteger NSUInteger 无符号整型 或者无符号 长整型 %ld %lu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值