你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS類的初始化

IOS類的初始化

編輯:關於IOS

IOS學習(OC語言)知識點整理

一、類的初始化
1)init初始化方法(構造方法):一般和alloc一起調用,用於給成員變量初始化。
2)id類型:相當於C中的void*,可以指向任何對象,不能加*,類似.net或java中的泛型。
3)帶參的初始化方法(自定義的初始化方法),是實例方法,必須以initWith開頭 。
例如:-(id)initWithName:(NSString*)name andPrice:(float)price andPage:(int)page;
Book *b3=[[Book alloc]initWithName:@"iOS開發"  andPrice:100 andPage:600];
4)初始化類時需要判斷父類對象是否已經初始化成功只有當父類對象初始化成功了才可以給類成員賦值。
初始化方法三步原則:
1)調用父類的init方法。
2)初始化自己的成員變量。
3)返回self 對象。
實例代碼:

   -(id)init
  {
      //調用父類的方法初始化從父類中繼承的成員變量
      //super實際上是一個編譯器符號,表示調用父類的方法
     self=[super init];
      if(self!=nil){  //nil相當於c中的NULL,如果父類初始化成功,才可 以繼續操作(實現成員變量的初始化)
          _name=@"myBook";
          _page=300;
          _price=50;
     }
     return self;//返回當前對象
 }

<span style="color: #008080;">

</span>5)點語法的介紹,點語法本質是一個方法的調用;點語法調用的方法一般只能是一個參數的實例方法。
6)@property聲明屬性,會自動生成對應屬性的set,get方法 ; 功能相當於以下2個方法的聲明
  1、-(void)setName:(NSString *)setname;
  2、-(NSString *)getname;
7)self的說明,如果是在實例方法中self代表當前調用此方法的實例對象,如果是在類方法中self代表當前所在類的類對象。
8)@synthesize合成方法體  會自動生成property所對應元素的方法體,@synthesize name =_name;表明方法是操作成員變量_name,

如果_name不存在, 會自動創建一個 成員變量_name;如果要使用@synthesize,必須有@property; 但有@property 可以沒有@synthesize。

9)@property 可以同時聲明同種數據類型的多個屬性;例如:@property(nonatomic,assign)int age,ID。
10)@property的修飾符介紹:
1、readonly:只讀,只生成getter方法,沒有setter方法
2、 readwrite:可讀寫,會生成setter和getter方法,默認是readwrite
3、nonatomic:不需要考慮數據同步,單線程應用程序中效率較高
4、atomic:需要考慮線程同步,效率低,默認是這種
與內存管理有關:
5、assign:直接賦值,一般用於int、float、double、long等基本類型
6、retain:一般用於對象
7、copy:一般用於字符串
8、默認是readwrite、atomic、assign

二、繼承

1)子類繼承父類:會繼承父類中所有的成員變量(包括私有的)和方法,還可以增加自己特有的成員。

2)當父類的方法不適合子類,可以對其方法進行重寫,重寫需要方法和父類中的方法名完全一樣。

3)當兩個類有很多相同的屬性和方法時,可以將相同的部分提取出來構成父類,讓這兩個類繼承父類

當父類的功能不能滿足需求時,可以考慮繼承父類創建子類

繼承的好處:可以表示類與類之間的關系,可以統一接口.

缺點是:耦合性太強。

如果類A完全擁有類B的部分屬性和方法時,可以考慮類B繼承類A,也可以考慮組合。

4)super關鍵字的介紹:

1、super實際上是一個編譯器符號,用於調用父類的方法

2、當子類重寫父類的方法,同時又想保留父類的功能時,可以用super調用

3、super處在類方法中,自動調用父類的類方法,處在實例方法中,自動調用父類的實例方法

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved