详解Objective-C构造函数

Posted on 2012-03-11 01:30  无忧consume  阅读(362)  评论(0编辑  收藏  举报

  Objective-C构造函数是本文要介绍的内容,主要是来了解构造函数,它是在创建对象的时候用来初始化对象数据的一种特殊的方法,构造方法返回对象的一个指针,我们可以通过调用超类的 init 方法来获取这个指针。objective-c 函数,Objective-C 构造函数Objective-C函数调用,Objective-C 函数声明。

构造函数是在创建对象的时候用来初始化对象数据的一种特殊的方法。构造函数可以使用任何方式命名,但是通常,将他们命名为 Init 。构造方法返回对象的一个指针,我们可以通过调用超类的 init 方法来获取这个指针,超类是当前的类所派生自的类,也就是当前类的父类,这里通常是 NSObject 类。

  Objective-C 构造函数

以下为引用内容:

  1. -(Container * ) myInit(int)n {      
  2. self = [super init];      
  3. if(self)   {            
  4. [self  setNumber:n];     
  5. }       
  6. return selef;   

  在代码中,当我们创建对象的时候,就可以把值传递给构造函数(方法),如下面的代码把对象中的数据初始化为 3 。

以下为引用内容:

  1. Container* obj = [[Container new] myInit:3]; 

完整实例参考代码

以下为引用内容:

  1. #import <Foundation/Foundation.h> 
  2. #import "student.h"   
  3. @interface  myobj:NSObject {  
  4.      int number;   
  5.  }   
  6.  -(void) setNumber:(int)Num:(int) Num2;   
  7.  -(void) outP;  
  8.   -(myobj*) myinit:(int)Num:(int)Num2;   
  9. @end @implementation myobj { }   
  10. -(myobj*) myinit:(int)Num:(int)Num2 {  
  11.      self =[super init];     
  12.      // 这里的超类的Init方法的名称是不能改变的       
  13.      if (self) {       
  14.          [self setNumber:Num:Num2];       
  15.     }      
  16.       return self;   
  17.    }   
  18.    -(void) setNumber:(int)Num:(int)Num2{  
  19.         number = Num+Num2;   
  20.       }   
  21.    -(void) outP{      
  22.     printf("this is the number you put in =%i",number);   
  23.   } @end int main (int argc, const char * argv[]) {   
  24.       NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];       
  25.       myobj* obj = [[myobj new] myinit:10:20];       
  26.       [obj outP];       
  27.       [pool drain];       
  28.      return 0;  

  Console 窗口中的运行结果:

  以下为引用内容:

  1. run [Switching to process 643]   
  2. Running…   
  3. this is the number you put in =30 
  4. Debugger stopped.   
  5. Program exited with status value:0.  

  小结:详解Objective-C构造函数的内容介绍完了,希望通过本文的学习能对你有所帮助!

Copyright © 2024 无忧consume
Powered by .NET 8.0 on Kubernetes