Objective-C构造函数是本文呢要介绍的内容,在objective-c中我们与使用很多其他的oop语言一样,可以使用构造函数,他是在创建对象的时候用来初始化对象数据的一种特殊的方法。构造函数可以使用任何方式命名,但是通常,将他们命名为Init。
构造方法返回对象的一个指针,我们可以通过调用超类的init方法来获取这个指针(超类是当前的类所派生自的类,也就是当前类的父类,这里通常是NSObject类);
参考代码:
-(Container * ) myInit(int)n
{
self = [super init];
if(self)
{
[self setNumber:n];
}
return selef;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
在代码中,当我们创建对象的时候,就可以把值传递给构造方法。例如,如下面的代码把对象中的数据初始化为:3
Container* obj = [[Container new] myInit:3];
- 1.
下面是一个完整的例子的参考代码:
#import <Foundation/Foundation.h>
#import "student.h"
@interface myobj:NSObject
{
int number;
}
-(void) setNumber:(int)Num:(int) Num2;
-(void) outP;
-(myobj*) myinit:(int)Num:(int)Num2;
@end
@implementation myobj
{
}
-(myobj*) myinit:(int)Num:(int)Num2
{
self =[super init];// 这里的超类的Init方法的名称是不能改变的
if (self) {
[self setNumber:Num:Num2];
}
return self;
}
-(void) setNumber:(int)Num:(int)Num2{
number = Num+Num2;
}
-(void) outP{
printf("this is the number you put in =%i",number);
}
@end
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
myobj* obj = [[myobj new] myinit:10:20];
[obj outP];
[pool drain];
return 0;
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
在Console窗口中的运行结果如下所示:
run
[Switching to process 643]
Running…
this is the number you put in =30
Debugger stopped.
Program exited with status value:0.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
小结:浅谈Objective-C构造函数的内容介绍完了,希望本文对你有所帮助。更多Objective-C关于的内容,请参考编辑推荐。