OC-方法之desription/alloc/init(2)
来源:互联网 发布:陕西广电网络上班时间 编辑:程序博客网 时间:2024/06/05 09:17
#import <Foundation/Foundation.h>@interface Person : NSObject{ @protected int _age;}- (void) setAge:(int)age;- (int) age;@end@implementation Person- (void) setAge:(int)age{ _age=age;}- (int) age{ return _age;}- (id) init{ if (self=[super init]) { self->_age=20; } return self;}- (NSString *)description{ return [NSString stringWithFormat:@"_age %d",_age];}@end@interface Student : Person@end@implementation Student- (id) init{ if (self=[super init]) { //use of undeclared identifier 'super' //super->_age=30; self->_age=30; } return self;}@endint main(){ //相当于[Person new] Person *p=[[Student alloc] init]; NSLog(@"%@",p); return 0;}
1对象实例化包括两个步骤
-分配内存 -初始化变量
Student *stu=[Student alloc];表示为一个内存分配存储空间,并返回该空间的指针
[stu init];调用-(id) init 方法初始化对象.对象初始化前必须调用超类的init方法.
当我们需要初始化对象属性的时候,可以提供一个带有参数的构造方法,例如
[stu initWithAge:.... andScore:...];
2.当我们查看一个对象,主要是观察其内部属性的值,这时候向对象发送一条description消息.
重新该方法,以获取对象属性,类比JAVA 的toString();
0 0
- OC-方法之desription/alloc/init(2)
- OC分配内存——alloc方法与init方法
- OC中new方法与alloc+init及构造方法
- OC 构造函数 alloc init
- OC学习笔记之init构造方法
- alloc]init 时候会调用initWithFrame方法
- 详解alloc、init 自定义初始化方法
- iOS alloc、init和new方法
- 创建对象之alloc和init
- OC初始化中new和alloc init的区别
- oc中alloc和init等基本注意和使用
- OC 中new与alloc/init的区别
- OC 中new与alloc/init的区别
- OC 中new与alloc/init的区别
- OC初始化中new和alloc init的区别
- OC-017.new和alloc init 的区别
- OC 中new与alloc/init的区别
- OC 中New和alloc/init的区别
- 第7周作业1——背包问题
- Maven 仓库
- Mac Apache Django WSGI 部署
- 函数参数中带省略号的用法
- 黑马程序员---第十章 对象和类
- OC-方法之desription/alloc/init(2)
- 深入理解Java Class文件格式(五)
- Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- c 语言中的 __LINE__,__DATE__,__TIME__,__FILE__
- Android Bitmap和Canvas学习笔记
- listView闪烁的问题
- Android中App调试的几个命令实践
- 将文件夹中的class文件打包成jar文件
- 深入理解Java Class文件格式(六)