1.物件導向和面向過程概念
1).面向過程
面向過程:以過程為核心,注重的是完成事件的詳細步驟,一步一步如何實現.
2).物件導向
物件導向:以事物為核心,注重的是參與該事件的事物應該具備的功能.所以完成該事件只是事物所有功能中的乙個功能.
2.類與物件
類: 類是具有相同特徵以及行為的事物的抽象,它是乙個抽象的概念,不具體.
物件: 類的例項.類的具體體現.生活中的萬物都是物件.
3.oo與oop
oo:(object oritented)物件導向
oop:(object oriented programming)
4.@是oc標誌
nslog(@"%hello world");//輸出的目的是為了驗證.
5.如何建立物件
1.開闢空間(堆區)
例:person *p = [person alloc];//開闢空間, +號方法,類方法.
//+(id)alloc; //id等同於void *,泛型,可以代表所有的物件.
//因為p儲存著物件堆區空間的位址,所有間接把p叫做物件,但是本質還是指標變數.
2.初始化
即: p = [p init]; //初始化,nil null 0
6.oc中方法的呼叫形式: 訊息傳送機制
[receiver message];
1.+號方法 類方法
2.-號方法 物件方法(例項方法)
例如:
car *car = [[car alloc] init];
[car run];//run();函式
7.類的定義
* 類的定義分為兩部分:1.介面部分(.h檔案中)2.實現部門(.m檔案中)
* 介面部分: 以 @inte***ce 開頭 + 型別 : (冒號表示繼承) 父類名 @end 作為結束
* 類的介面部分的內容必須寫在 @inte***ce 與 @end 之間.
* 類的實現主要是方法的實現.
* 類的介面部分提供例項變數以及方法的宣告
* 類的本質就是自定義的一種資料型別.
例如:1).student.h宣告檔案
@inte***ce student : nsobject
- (void)study;//方法名:study
- (void)message:(nsstring *)name1;//無返回值,有乙個引數,引數型別nsstring *型別
//方法名 sumvaluewitha: withb: withc:
- (nsinteger)sumvaluewitha:(nsinteger)a withb:(nsinteger)b withc:(nsinteger)c;
- (nsinteger)maxgbwitha:(nsinteger)a withb:(nsinteger)b;//方法名 maxgbwitha: withb:
@end
2).student.m實現檔案.
* 類的實現部分: 以@implementation 開頭 + 實現類名 @end 作為實現部分的結束.
* 類的實現** 必須解除安裝 @implementation 與@end 之間才有效.
@implementation student
- (void)study
- (nsinteger)moneyvaluewitha:(nsinteger)a withb:(nsinteger)b
- (void)message:(nsstring *)name1
//最小公倍數
- (nsinteger)maxgbwitha:(nsinteger)a withb:(nsinteger)b
return (tempa * tempb) / b;
} @end
3). main函式實現.
student *stu = [[student alloc] init];
[stu study];
nsinteger mon = [stu moneyvaluewitha:10 withb:20];
nslog(@"%ld", mon);
[stu message:@"asdf"];
注:**規範:
1.類名:有英文單詞組成,每個單詞的首字母大寫,不能出現數字,更不能出現拼音.
2.例項變數: 有英文單詞組成,除了第乙個單詞的首字母小寫以外,其他單詞首字母大寫.
3.一般情況下一對一,h和m檔案中定義乙個類.
Windows上編譯,學習Objective c
3 配置環境變數 這一步很重要。gnustep.sh是用來設定gnustep開發環境變數的,如果沒有執行,就會有很多標頭檔案,庫檔案,命令找不到 在乙個目錄裡寫好了源 以後,編寫乙個make配置檔案,名字必須叫gnumakefile,內容是 include gnustep makefiles com...
iOS 高階之路
自己閱讀,翻譯,裡面不懂的單詞,記下來,多學幾遍,這些你不懂的單詞,在以後你看其他時文件裡還會出現無數次的。堅持幾個月後,你會發現,英文的文件,看起來比中文的順眼了。為什麼要找自己熟悉的技術看,因為那樣的話,你更容易理解和增加信心。作為技術人員為什麼要寫部落格 即便沒有讀者,你也要寫部落格 原始碼 ...
iOS菜鳥之路
undefined symbols for architecture armv7s 意思是匯入第三方庫的時候沒有將第三方庫需要的系統庫新增完整,導致第三方庫不能正常編譯,匯入融雲時候出現過該bug 未定義的符號結構armv7 kvtdecompressionpropertykey realtime ...