제5 일 - 구조 방법 코드 추출

//
//  main.m
//  07-        
//
//  Created by Apple on 14/11/23.
//  Copyright (c) 2014  itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CZPerson.h"
#import "CZStudent.h"

int main(int argc, const char * argv[]) {
   
    CZStudent *stu = [[CZStudent alloc] init];
    
    NSLog(@"age = %d",stu.age);
    
    CZStudent *stu1 = [[CZStudent alloc] initWithAge:10 andName:@"  " andNo:@"001"];
    
    NSLog(@"age = %d,name = %@,no = %@",stu1.age,stu1.name,stu1.no);
    
    return 0;
}



void test()
{
    //    CZPerson *person = [[CZPerson alloc] init];
    //
    //    NSLog(@"age = %d",person.age);
    //
    //           ,   CZPerson   
    
    CZPerson *person = [[CZPerson alloc] initWithAge:40];
    
    NSLog(@"age = %d",person.age);
    
    //                        
    CZPerson *person2 = [[CZPerson alloc] initWithAge:30 andName:@"  "];
    
    NSLog(@"age = %d,name = %@",person2.age,person2.name);
}


//
//  CZPerson.h
//  1123-     
//
//  Created by Apple on 14/11/23.
//  Copyright (c) 2014  itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface CZPerson : NSObject

@property int age;//   

@property NSString * name;//  

/**
 *           ,      
 */
- (id) initWithAge:(int) age;

/**
 *           
 */
- (id) initWithAge:(int)age andName:(NSString *) name;

@end

//
//  CZPerson.m
//  1123-     
//
//  Created by Apple on 14/11/23.
//  Copyright (c) 2014  itcast. All rights reserved.
//

#import "CZPerson.h"

@implementation CZPerson


//  init  
/**
   init       
 1、       init
 2、       init       
 3、      
 */
-(id) init
{
    return [self initWithAge:20];
  
}

//                    
//OC init family
//           
//1、   initWith  
//2、        id   instancetype
//  init      ,     self  
- (id) initWithAge:(int) age
{
    return [self initWithAge:age andName:nil];
}


- (id) initWithAge:(int)age andName:(NSString *)name
{
//                 ,     self        
    NSLog(@"CZPerson %p",self);
    if (self = [super init]) {
        //             
        self.age = age;
        self.name = name;
    }
    return self;
}

@end

//
//  CZStudent.h
//  1123-     
//
//  Created by Apple on 14/11/23.
//  Copyright (c) 2014  itcast. All rights reserved.
//

#import "CZPerson.h"

@interface CZStudent : CZPerson

@property NSString * no;//  

//         
-(id) initWithAge:(int)age andName:(NSString *)name andNo:(NSString *) no;

@end

//
//  CZStudent.m
//  1123-     
//
//  Created by Apple on 14/11/23.
//  Copyright (c) 2014  itcast. All rights reserved.
//

#import "CZStudent.h"

@implementation CZStudent


-(id) initWithAge:(int)age andName:(NSString *)name andNo:(NSString *) no
{
    NSLog(@"CZStudent %p",self);
    NSLog(@"self = %p",self);
//    NSLog(@"super class = %@",[super class]);
//    NSLog(@"super = %p",super);//super                    
  
//    self          
//_________________________________________________      ,      
//                  
    if (self = [super initWithAge:age andName:name]) {
//             
        self.no = no;
    }
    return self;
    
    
}

@end

좋은 웹페이지 즐겨찾기