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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请教一下,用类方法创建自定义对象和用init创建同样功能的自定义对对象,有什么区别呢?
部分代码如下:
+ (id)studentWithName:(NSString *)name andAge:(int)age andNo:(int)no andBook:(Book *)book
{/*
   Student *st =  [[[self alloc] init] autorelease];
    st.name = name;
    st.age = age;
    st.no  = no;
    st.book = book;
  */
    Student *st = [self personWithName:name andAge:age];
    st.no = no;
    st.book = book;
    return st;
}

- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no  andBook:(Book *)book
{
    if (self = [super init])
    {
        self.name = name;
        self.age = age;
        self.no = no;
        self.book = book;
    }
    return self;
}

1 个回复

倒序浏览
没感觉有区别. 都是创建对象.   类方法创建可能就少打几个代码方便点吧.  要么就是类方法是开辟空间初始化一起做  对象方法是 之前开辟过空间了 他制作初始化操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马