OC方法和文件編譯


OC方法和文件編譯

一、OC方法

(一)對象方法

(1)對象方法以-開頭如 -voidxx;

(2)對象方法只能又對象來調用

(3)對象方法中可以訪問當前對象的成員變量

(4)調用格式   [對象名  對象方法名]

(5)設計一個學生類和狗類,練習對象方法的使用。

學生類的聲明:

 

學生類的實現:

 

狗類的聲明:

 

狗類的實現:

 

主程序:

 

 

(二)類方法

(1)類方法以+開頭  如+voidput;

(2)類方法只能由類來調用

(3)類方法中不能訪問實例(成員)變量,因為類方法又類來調用,並沒有創建存儲空間來存儲類中的成員變量。

(4)調用格式:[類名  類方法名]

(5)類方法的好處和適用場合:

不依賴於對象,執行效率更高;

能用類方法解決的問題,盡量使用類方法;

場合:當方法內部不需要使用到成員變量時,可以改為類方法。

(6)設計一個計算器類,練習使用類方法。

計算器類的聲明:

 

計算器類的實現:

 

主程序:直接使用類名調用類方法

 

注意1可以允許類方法和對象方法同名。

注意2在對象方法中可以調用類方法。

(三)方法名

(1)不帶參數的方法

聲明:

 

調用:

 

(2)帶參數的方法

聲明:

調用:

 

 

 注意:冒號也是方法名的一部分。

二、文件編譯

在工作中,通常把不同的類放到不同的文件中,每個類的聲明和實現分開,聲明寫在.h頭文件中,實現寫在相應的.m文件中去,類名是什么,文件名的前綴就是什么。

假設有兩個類,分別是Person類和Dog類,則通常有下面五個文件:

(1)Person.h    Person類的聲明文件

(2)Person.m    Person類的實現文件

(3)Dog.h Dog類的聲明文件

(4)Dog.m Dog類的實現文件

(5)Main.m 主函數(程序入口)

在主函數以及類的實現文件中要使用#import包含相應的頭文件。

補充:import有兩個作用:一是和include一樣,完完全全的拷貝文件的內容;二是可以自動防止文件內容的重復拷貝(即使文件被多次包含,也只拷貝一份)。

在使用命令行進行編譯鏈接文件的時候,通常是把.m文件單文件編譯,然后再把所有的目標文件鏈接,但是在Xcode中,是把所有的.m文件都進行編譯鏈接的,如果出現重復定義的錯誤,那大部分問題根源應該就是文件內容被重復包含或者是包含.m文件所引起的。

源文件中不論是使用include還是import,都不能包含.m或者是.c文件,只能放聲明。因此,在OC中通常把類拆分開來,拆分成聲明和實現兩個部分。

提示:這也是編程思想的一種體現,可以說.h.m文件時完全獨立的,只是為了要求有較好的可讀性,才要求兩個文件的文件名一致,這也是把接口和實現分離,讓調用者不必去關心具體的實現細節。

Xcode是寫一行編譯一行,有簡單的修復功能,紅色是錯誤提示,黃色警告。如果在程序中聲明了一個變量,但是這個變量沒有被使用也會產生警告信息。在調試程序的時候,如果發現整個頁面都沒有報錯,但是一運行就錯誤,那么一定是鏈接報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM