Objective-C學習- 便利初始化函數和便利構造器

  在面向對象的語言中,Objective-C的 便利初始化函數 能夠理解爲 如 Java,C++ 中的含參數的構造函數,但又有些不一樣...函數

  例如,用Student類爲例spa

  

 

首先是Student.h文件對象

  #import <Foundation/Foundation.h> it

  @interface Student : NSObject io

  //定義屬性class

  @property NSString *studentName; //學生姓名import

  @property int age; //學生年齡構造函數

 

  //含姓名參數和年齡參數的構造函數(便利構造初始化函數)gc

  -(id) initWithName:(NSString *)name andWithAge:(int)age;方法

 

  //便利構造器(是類方法)  

  +(id) studentWithName:(NSString *)name andWithAge:(int)age;

 

  @end


而後是管理實現的Student.m文件

  #import "Student.h"

  @implementation Student

 

  //含姓名參數和年齡參數的構造函數(便利構造初始化函數)

  -(id) initWithName:(NSString *)name andWithAge:(int)age

  {

       if (self =  [super init])

        {

            [self setStudentName:name];

            [self setAge:age];

        }

      return self;

  }

 

  //便利構造器(是類方法)

  +(id) studentWithName:(NSString *)name andWithAge:(int)age

   {

      Student *student = [[Student alloc] initWithName:name andWithAge:age];

          return student;

    }

  @end

 

在main.m裏面查看用法

  #import <Foundation/Foundation.h>

  #import "Student.h"

  int main(int argc, const char * argv[]) { 

      //以前的定義方法

      Student *student = [[Student alloc]initWithName:@"小明" andWithAge:19];     

 

      //用便利構造器,用便利構造器能夠看出來,定義要簡單的多

      Student *student1 = [Student studentWithName:@"小明" andWithAge:19];

      return 0;

  }

相關文章
相關標籤/搜索