oc 類擴充套件

2021-06-28 19:14:21 字數 3292 閱讀 9251

封裝的特性就是暴露公共介面給外邊呼叫,c++通過public定義公共方法提供給外面呼叫,protected和private定義的方法只能在類裡面使用,外面不能呼叫,若外面呼叫,編譯器直接報錯,對於變數也同理。oc裡面類擴充套件類似protected和private的作用。

1.類擴充套件是一種特殊的類別,在定義的時候不需要加名字。下面**定義了類things的擴充套件。

@inte***ce things ()

nsinteger thing4;

@end

2.類擴充套件作用

1)可以把暴露給外面的可讀屬性改為讀寫方便類內部修改。

在.h檔案裡面宣告thing2為唯讀屬性,這樣外面就不可以改變thing2的值。?

12

3

4

5

6

7

@inte***cethings :nsobject

@property(readonly, assign)nsintegerthing2;

- (void)resetallvalues;

@end

在.m裡面resetallvalues方法實現中可以改變thing2為300.?

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

@inte***cethings ()

@property(readwrite, assign)nsintegerthing2;

@end

@implementationthings

@synthesizething2;

- (void)resetallvalues

2)可以新增任意私有例項變數。比如上面的例子things擴充套件新增了nsinteger thing4;這個例項變數只能在things內部訪問,外部無法訪問到,因此是私有的。

3)可以任意新增私有屬性。你可以在things擴充套件中新增@property (assign) nsinteger thing3;

4)你可以新增私有方法。如下**在things擴充套件中宣告了方法disinfo方法並在things實現了它,在resetallvalues呼叫了disinfo?

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

@inte***cethings ()

@property(readwrite, assign)nsintegerthing2;

@property(assign)nsintegerthing3;

- (void) disinfo;

@end

@implementationthings

@synthesizething2;

@synthesizething3;

- (void) disinfo

- (void)resetallvalues

OC 類的擴充套件

類的擴充套件 繼承 類目延展 協議 1.類目 category 命名 inte ce 要擴充套件的類名 類目名 end 特點 1.不可定義成員變數,而且一般不定義屬性 2.可以新增方法,可重寫原始類的方法,原始類的物件呼叫 2.延展 extension 命名 寫在.m檔案裡 inte ce 類名 e...

OC 類的擴充套件

girl.h protocol marry 協議的內容 方法宣告 required是必須實現的方法,預設必須實現 optional是可選擇執行的方法 required void makemoney optional void cook 2.設定 人屬性 property nonatomic,assi...

OC總結 類的擴充套件

一 類的擴充套件 一 category 分類或類目 主要的作用 是為沒有源 的類新增方法,通過category新增的方法會成為原類的一部分,從而達到擴充套件乙個類的功能。1 category與subclass的區別 1 category只能為類新增方法,而子類既能為類新增方法又能新增變數 2 cat...