OC學習記錄3 類

2021-07-28 23:27:13 字數 2953 閱讀 3030

自定義類

建立abc.h以及abc.m檔案,在.h檔案中,在.h檔案中定義例項變數。

-(float)heightinmeters;

-(void)setheightinmeters:(float)h;

-(int)weightinkilos;

-(void)setweightinkilos:(int)w;

-(float)bodymassindex;

繼續在.h檔案中建立例項方法,-( )中標明例項方法返回值的型別,:後面表示傳入次類方法的引數。

-(float)heightinmeters

-(void)setheightinmeters:(float)h

在.m檔案中建立例項方法的具體執行語句,其中heightinmeters屬於取方法,可以讀取例項變數的值。而setheightinmeters是存方法,可以為相應的例項變數賦值。

屬性

@property(nonatomic)float heightinmeters;

@property(nonatomic)int weightinkilos;

這裡沒用使用訪問方法,而是直接定義了nonatomic這一屬性,通過這個屬性系統會自動給方法增加存方法和取方法。還有其他屬性,例如readwrite(讀寫屬性),由於讀寫屬性是預設屬性所以不需要特別說明(原子型是預設屬性)。使用屬性可以簡化**。

繼承

@inte***ce class : nsobject

@inte***ce class : abc

不同類之間可以相互繼承,例如之前的示例我們自定義的abc類在建立檔案時xcode預設繼承nsobject類(在abc.h中會自動建立第一條**),這時候我們再新建乙個qwe類,在創立類的時候將預設的nsobject類改為abc類(在qwe.h中會自動建立第二條**),這樣的話qwe類則可以擁有abc類所有的方法和屬性,但是qwe類中的屬性和方法不會出現在abc類中。同樣因為abc類繼承nsobject類,所以qwe類可以認為同樣繼承nsobject類。

覆蓋方法

-(float)bodymassindex

在子類中,可以覆蓋母類繼承下來的方法。可以直接在.m檔案中直接引用母類的方法並且覆蓋(即修改此方法返回的結果)。

super

-(float)bodymassindex

前面提到了覆蓋方法,那麼如何引用並改變母類方法返回結果呢,這裡就要用到super指令,使用super指令可以在子類中引用並修改母類方法返回的結果。

OC學習筆記之OC類你好

之前,小橋的mac系統是裝在虛擬機器中的,虛擬機器占用資源太大,想裝在實機上,所以這個星期都在搗鼓,終於完工!一 關於類 高階語言中似乎都有類的概念,c 中是從c的結構體而來。類是物件導向語言中的核心部分,物件導向的三大特性在類中都有具體表現!比如在c 類中,有封裝,有繼承,多型性有過載!相信oc中...

OC學習筆記 OC中的類

1.objc跟c的區別與聯絡 首先 objc是乙個物件導向的語言 封裝 繼承 多型 objc相當於c的乙個超集 即objc允許使用任何c語言 但增加了許多c沒有的特點 bigger easier 2.objc中的類與物件 類由介面 xx.h inte ce 和實現 xx.m implementati...

c primer 類與物件 3 學習記錄

include using namespace std struct x 建構函式的初始化順序應該和宣告順序相同 錯誤 先初始化base,就需要先宣告base,否則編譯器不一定會報錯!class sales data ostream write ostream os const public sal...