Object-C 便利构造器
2015-07-27 13:18
459 查看
Object-C 便利构造器
对类来说1.初始化方法 系统的
2.自定义初始化方法
-(id)initWithWithName:(NSSTRING *)name ;
3.便利构造器(初始化方法)
作用:在外界构造类的对象时,开发者 不需要关心其生命周期
4.OC中方法
静态方法 (类方法) 标识: +
实例方法 标识: -
5.在类的外边调用
对于 类方法 来说,它调用方式是用 类 来调用
对于 实例方法 来说,它调用方式是用 对象 调用
新建 Student.h 与 Student.m文件
Student.h文件
#import <Foundation/Foundation.h> @interface Student : NSObject { NSString *_sID ; } @property (nonatomic,strong)NSString *name ; @property (nonatomic,assign)NSInteger age ; -(id)initWithName:(NSString *)name Age:(NSInteger)age; -(void)sayHello ; //便利构造器 +(Student *)studentWithName:(NSString *)name Age:(NSInteger)age;
1.根据需要创建便利构造器
2.根据需要来创建便利构造器相对应的方法
Student.m文件:
#import "Student.h" @implementation Student -(id)init { if (self = [super init]) { } return self; } -(id)initWithName:(NSString *)name Age:(NSInteger)age { if (self = [super init]) { self.name = name; self.age = age ; [self sayHello]; } return self; } //便利构造器 //相当于在类的里面再写一个跟类无关的方法 +(Student *)studentWithName:(NSString *)name Age:(NSInteger)age { //在类中用类本身自带的初始化方法来构造对象,然后将对象当做返回值抛出 Student *st = [[Student alloc]initWithName:name Age:age]; return st; /* 在类的内部,对于静态来讲: 1.它不能访问类的实例变量及属性 2.不能用self调用类自带方法和属性 */ } -(void)sayHello { NSLog(@"hello"); } @end
main.m文件
#import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { //利用便利构造器生成st对象 Student *st = [Student studentWithName:@"jack" Age:25]; //利用便利初始化方法生成st1对象 Student *st1 = [[Student alloc]nitWithName:@"jack" Age:25]; } return 0; }
相关文章推荐
- Iterator迭代器、Comparable、Comparator比较器
- Entity Framework 出现 "此 ObjectContext 实例已释放,不可再用于需要连接的操作" 的错误 原因
- [置顶]Swift 与 Object-C 交互 (Swift版本为:1.2)
- ios开发-Object-C可变参数函数
- iOS开发-Object-C Block的实现方式
- iOS开发-Object-C获取手机设备信息(UIDevice)
- iOS开发-Object-C学习之结构体使用
- Object c中的alloc和init问题
- Google Objective-C 风格指南
- Objective-C——Protocol
- Objective-C——Category
- cvHaarDetectObjects、cvRectangle
- OC面向对象
- GLib-GObject-WARNING **: Two different plugins tried to register
- Objective-c和Java下DES加密解密保持一致
- iPhone开发:Objective-c中@property声明时的参数释疑
- IOS-Swift、Objective-C、C++混合编程
- java.lang.NoClassDefFoundError: org/objectweb/asm/Type
- 反序列化JSON字符串 &遍历JObject
- Objective-C Properties 详解