1,构造函数的作用:用来对alloc创建的对象(及用alloc来分配存储空间,是一块处女地)进行初始化。如果初始化失败,则返回nil。
2,如果是无参构造函数,函数名必须是init。返回值必须是id,函数前面必须是‘-’号,如:- (id)init;。系统会自带一个无参的构造函数,作用是将当前对象的所有成员的内容初始化为0。
3,self表示当前对象,当前对象 == 调用该函数的对象。
4,如果有多个构造函数,且其中的代码有重复的地方,可以考虑函数之间的相互调用(递归函数
/*
<span style="white-space:pre"> </span> 创建一个描述人的类,属性和方法
*/
#import <Foundation/Foundation.h>
//@interface用于声明一个类和类中的成员变量以及方法的声明
@interface Persion : NSObject
{
@public
char * _name;
NSInteger _age;
char *_sex;
CGFloat _height;
CGFloat _whight;
}
//构造函数用于对对象的初始化
- (id)init;
- (id)initWithName:(char *)name;
- (id)initWithName:(char *)name andAge:(NSInteger)age;
- (void)eat;
- (void)run;
- (void)sleep;
@end
@implementation用于对函数中方法的实现
#import "Persion.h"
@implementation Persion
- (id) initWithName:(char *)name
{
self = [super init];
if (self) {
_name = name;
}
return self;
}
- (id) initWithName:(char *)name andAge:(NSInteger)age
{
self = [self initWithName:name];
if (self) {
_age = age;
}
return self;
}
- (id) init
{
self = [super init];
if (self)
{
_age = 20;
_name = "wangwu";
_sex = "Male";
_height = 170;
_whight = 60;
}
return self;
}
- (void) eat
{
NSLog(@"吃东西");
}
- (void) run
{
NSLog(@"跑步");
}
- (void) sleep
{
NSLog(@"睡觉");
}
@end