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

來源:互聯網
上載者:User

標籤:

  在物件導向的語言中,Objective-C的 便利初始化函數 可以理解為 如 Java,C++ 中的含參數的建構函式,但又有些不同...

  例如,用Student類為例

  

 

首先是Student.h檔案

  #import <Foundation/Foundation.h> 

  @interface Student : NSObject 

  //定義屬性

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

  @property int age; //學生年齡

 

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

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

 

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

  +(id) initWithName:(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) initWithName:(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 initWithName:@"小明" andWithAge:19];

 

 

 

      return 0;

 

  }

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.