A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yufang1993 中级黑马   /  2015-11-19 00:34  /  638 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造方法
是什么?
对象初始化时执行的方法.(方法,对象的方法)
有什么用?
初始化一个对象
怎么用?
重写
自定义构造方法
子类自定义
//
//  main.m
//  02构造方法
#import <Foundation/Foundation.h>
#import "Person.h"
#import "zhangSan.h"
int main(int argc, const char * argv[]) {
   
    //    Person *per=[Person new];
    //    [per haha];
   
   
    //    Person *per1=[Person alloc];
    //    Person *per2=[per1 init];
   
    //    [per2 haha];
    //    自定义构造方法
    Person *per=[[Person alloc] initName:@"张三" Age:20];
    NSLog(@"姓名:%@;年龄:%d",per.name,per.age);
   
    //    重写.仅仅重写代码
    //    Person *per=[Person alloc];
    //    id per2=[per init];
    //    NSLog(@"姓名:%@;年龄:%d",((Person *)per2).name,((Person *)per2).age);
    //
    //    子类中自定义方法
    zhangSan *zs=[[zhangSan alloc] initColor:@"紫色"];
    NSLog(@"%@",zs.color);
   
    return 0;
}

//
//  zhangSan.h
//  02构造方法
#import "Person.h"
@interface zhangSan : Person
@property NSString *color;
-(id)initColor:(NSString *)color;
@end
//
//  zhangSan.m
//  02构造方法
#import "zhangSan.h"
#import "Person.h"
@implementation zhangSan
//子类自定义构造方法
-(id)initColor:(NSString *)color{
    self=[super init];
    _color=color;
    return self;
}
@end
//
//  Person.h
//  02构造方法
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property NSString *name;
@property int age;
//-(void)haha;
-(id)initName:(NSString *)name Age:(int)age;
//-(id)init;
@end
//
//  Person.m
//  02构造方法
#import "Person.h"
@implementation Person
//-(void)haha{
//    NSLog(@"haha");
//}
//自定义构造方法
-(id)initName:(NSString *)name Age:(int)age{
    self=[super init];
   
    _name=name;
      _age=age;
   
    return self;
}
//重写
//-(id)init{
//    self = [super init];
//    _name=@"逗比";
//    _age=10;
//    return self;
//}
@end
什么时候用?
需要根据需求初始化对象.
特点?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马