1.首先是輸出函數,在學c語言時咱們都習慣寫prinft 可是到了oc中 就要用NSLog 來輸出語句了數組
NSLog(@"Hello, World!");app
NSLog有一個注意點就是在雙引號前面加上@,說到這不得不提一點,在oc中@出現的頻率之高,簡直使人髮指,你會發如今剛建立.m文件的時候,主函數裏面的第一行就是@autoreleasepool 這句代碼是做用簡單來講就是:能夠在某些狀況下,大幅度下降程序的內存佔用。當你仍是新手打着簡單的代碼,運行卻發現出現問題時,不防能夠看看是否是哪裏缺了一個@,做爲剛剛學完 c 轉而來學oc的人,這個@加的真的很不適應。函數
2.類和對象,也是新的名詞,形象的解釋一下,類就比如 🐶這個羣體,而你家的大黃啊,小白啊,就是🐶這個類裏面的一個對象。.net
在建立類的方法 :快捷鍵(小菊花+n),選擇OC X source 裏的Cocoa class 新建一個類,類名首字母大寫(習慣吧), 這時你的目錄裏就會出現兩個文件 一個.h結尾一個.m結尾。那麼一個對象應該有哪些內容呢? 正常來講,每一個人都具備他的屬性和方法(行爲)。屬性 就好比人的身高體重年齡學歷等等。方法就是人要作的事情,就像是吃飯喝水睡覺之類的事。該如何建立對象的屬性和方法呢?指針
我來演示一下 建立一個Person的類對象
@interface Person : NSObject內存
{ NSString *_name;字符串
int weight;get
int heigh;}class
在.h文件中 NSObject 後面加上兩個花括號,裏面就是對象具備的屬性,這裏注意一點,在oc裏是有專門對應字符串的數據類型 也就是NSString 不用像在c語言裏經過字符數組或者字符指針去接字符串那樣來定義字符串了,當你定義完屬性以後,接下來要聲明對象方法
-(void)eat;
-(void) drink;
這裏跟c中的結構體類似,void 也能夠被int double NSString*等替換
咱們已經聲明瞭對象的屬性和方法,那麼咱們怎麼樣來實現它們呢?
這時進入到.m文件 把剛剛聲明的對象方法複製到這裏面來,分號換成花括號,跟結構體是相似的,在這裏說明一點,不刪除分號直接加花括號也是能夠的,系統不會報錯,可是規範一些仍是寫成:
-(void)eat
{
NSLog(@"Apple");
}
-(void) drink
{
NSLog(@"Water");
}
裏面的內容就是你要實現的行爲方法了。聲明實現以後 咱們就要調用它們了
在main.m文件中 ,先建立一個對象。
Person * LiHua =[ Person new];//這樣你就建立了一個名爲李華的對象
[LiHua eat];// 調用這個eat 的方法,也就是會輸出 apple 這個字符串
若是想調用對象裏面的屬性該怎麼辦呢?
在main.m裏添加頭文件
首先建立一個Peter的對象,用->來調用對象的屬性,但咱們看到提示上都有一個紅色的橫線,這是什麼意思呢?
能夠嘗試一下,若是在此時調用對象裏面的屬性,實際上是調用不到的,這是由於咱們在定義Person的屬性時,系統默認添加了一個@private的頭文件,這個頭文件表明私人,咱們是看不到的,只能在類文件的方法中調用,在其餘類文件和主函數中是沒法調用的,解決方案也很簡單,只要在.h文件中,聲明@public,告訴系統類的屬性是公用的就能夠了。
這時再調用類的屬性
能夠看到紅線所有都消失了。咱們能夠對對象的屬性進行賦值。
是否是很簡單呢?