【黑马程序员】重写构造方法实现两种功能
2015-08-23 13:58
381 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
实现-instancetypeinitWithXXXintage
要求使每个新创建出来的对象都有一个自定义的默认值
实现-instancetypeinitWithXXXintage
要求使每个新创建出来的对象都有一个自定义的默认值
实现-(instancetype)initWithXXX:(int)age;
思考&实现:创建一个学生类Student,通过重写构造方法实现创建学生对象的时候,默认的年龄的值为指定的年龄student.h #import <Foundation/Foundation.h> @interface Student : NSObject @property (nonatomic, assign)int age; -(instancetype) initWithAge:(int)age; +(instancetype)studentAgeWith:(int)age; @end
Student.m import "Student.h" @implementation Student -(void)dealloc{ NSLog(@"Student 被释放"); [super dealloc]; } //自定义构造方法 -(instancetype) initWithAge:(int)age{ if (self = [super init]){ _age = age; } return self; } //自定义初始化方法 +(instancetype)studentAgeWith:(int)age{ return [[[self alloc] initWithAge:age]autorelease]; } @end
main.m #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]){ @autoreleasepool{ Student * stu = [[[Student alloc]initWithAge:10]autorelease]; Student *stu1 = [Student studentWithAge:100]; NSLog(@"stu.age = %d, stu1.age = %d", stu.age, stu1.age); } reutrn 0; }
要求使每个新创建出来的对象都有一个自定义的默认值
student.h #import <Foundation/Foundation.h> @interface Student : NSObject @property (nonatomic, assign)int age; @end
Student.m import "Student.h" @implementation Student -(instancetype)init{ if (self = [super init]){ _age = 10; //设置该变量的默认值 } return self; } @end
相关文章推荐
- iOS开发工程师面试知识点汇总
- 【黑马程序员】autorelease用法
- 黑马程序员-------Java笔记--------怎么越过泛型检查
- 【剑指offer】面试题39:深度二叉树
- 黑马程序员----集合框架的的基本操作
- iOS单例模式(面试必考)
- 黑马程序员-------Java笔记--------分数基本运算
- 黑马程序员----Java集合框架学习笔记2 Map-工具类-泛型
- 珍藏文:花10钟看一看少走30年弯路
- 黑马程序员——JAVA基础之面向对象(下)
- 程序员一生必读的书
- 幽默趣味:程序员如同妓女
- 黑马程序员-------Java笔记--------完数与质数
- 剑指Offer面试题:8.斐波那契数列
- 黑马程序员----Java集合框架学习笔记1-List 与Set
- 初入职场感悟
- 黑马程序员--OC之内存管理
- 黑马程序员-[OC]学习之旅-ARC机制和类别
- 我的职业规划(android)
- Android(java)学习笔记188:关于构造代码块,构造函数的一道面试题(华为面试题)