随着时间的跟进,我们来到了今天,今天会介绍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