05. 对象的初始化

1. 初始化方法

    用来初始化对象的方法。

    1.1 初始化方法的规则:

        1)初始化方法都是以"init"开头的。无参的初始化方法都叫"init",有参的都以"initWith..."开始。

        2)初始化方法都返回"id"类型

        3)初始化方法的实现一般如下:

                if(self = [super init..]){

                    //初始化当前对象的属性等

                }

                return self;

        4)一个类中可以有多个初始化方法

    1.2 id类型

        id类型是一种特殊的指针类型,类似于void*. id类型的变量其实是一个指针变量,可以指向任何对象。

            id r = [TRPoint alloc];

//
//  Student.h
//  day02-5
//
//  Created by tarena on 14-3-18.
//  Copyright (c) 2014年 tarena. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property int age;
@property char sex;
-(id)init; //无参的初始化方法
-(id)initWithAge:(int)age andSex:(char)sex;
@end


//
//  Student.m
//  day02-5
//
//  Created by tarena on 14-3-18.
//  Copyright (c) 2014年 tarena. All rights reserved.
//

#import "Student.h"

@implementation Student
-(id)init{
    self = [super init]; //super init调用父类的初始化方法,self把初始化的结果給当前对象
    if (self != nil) {
        //給当前对象的属性赋值
    }
    return self;
}

-(id)initWithAge:(int)age andSex:(char)sex{
    self = [super init];
    if (self != nil) {
        self.age = age;
        self.sex = sex;
    }
    return self;
}
@end


//
//  main.m
//  day02-5
//
//  Created by tarena on 14-3-18.
//  Copyright (c) 2014年 tarena. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Student.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        //Student alloc创建Student类型的内存空间
        //创建了一个对象
        //向这个对象发送init消息 初始化内容空间
        //stu得到初始化后的内存首地址
        //id(void*)类型在使用之前要进行类型转换
        Student* stu = [[Student alloc]init];   //无参的等价于Student* stu = [Student new];
        NSLog(@"stu.age:%d", stu.age);
        Student* stu1 = [[Student alloc]initWithAge:18 andSex:'F'];
        NSLog(@"stu1.age:%d, stu1.sex:%c", stu1.age, stu1.sex);
        
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值