從今天開始學OC,一天一更,讓我們共同進步。


第一天


OC的文件後綴名爲.m(message)的意思,

第一個程序hello world

打印函數NSLog();和C語言和c++的區別是,它會自動換行。

 

#import :包含系統的頭文件。和C語言的#include 類似,但是,他會自動判斷是否已經被包含,而C語言中需要用#ifndef   #endif來進行管理:

 

 

定義一個類:

包含兩個文件:

.h:類的聲明文件,用於變量和函數的聲明

@interface :聲明一個類:後面跟一個類名。

@end 代表這個類結束

@interface :  ":"代表繼承的標誌。後面跟父類名。

 

把成員變量寫在大括號裏面,然後方法名寫在括號外面,

 

聲明方法:所有在.h中聲明的方法都是公共的方法:

-:說明是個動態方法:(對象的方法)

+:說明是一個靜態的方法:(類的方法)

方法的參數問題:

一個冒號對應一個參數。

.m:實現.h文件中聲明的方法:

@implementation  +類名: (實現類中的方法)

@end結尾:



main函數中的方法實現:

1.所有的OC對象都要加一個*,所以OC的所有對象都是指針

2.創建一個對象:例如:Student  *stu =[Student  alloc];

3。初始化:stu =[Student  init]

             合成一塊可以寫成:Student *stu = [[Student alloc]init];

4,釋放對象。

 

 

點語法:

和c++和java的語法不通,OC 的“.”實際上是調用了類中的動態的方法:。而前兩者是用一個對象來操控他的參數。而在OC中,如果一個類Person ,有屬性age,set 和get方法都已經聲明完畢,

Person *per =[[Person alloc]init];

Per.age=23;--------->[per  setAge:23]      調用了set方法:

Int age =per.age;----------->intage = [per getAge]      調用了get方法:

 

總結:如果“." 作爲左值,調用的是set方法

如果”.“作爲右值,那麼調用的是get方法:

 

 

注意:如果在set方法中用self.age =age :相當於自身調用了自身,會造成死循環,不可。。。

同樣,在get方法中也不能return self.age ,這樣也會調用get方法,自身調用自身,死循環、。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章