nsstring的建立和使用
//注意oc中字串是以@開頭 @」xx」
以下4種方式
1建立常量字串,注意使用「@「符號。
nsstring *astring = @」this is a string!」; //後面的是常量,前面的是指標變數
2nsstring *s1 = [nsstring new];
s1 =@」jian le ma」; 3
格式化建立字串(按照指定的格式建立字串)
4用乙個已經存在的字串建立乙個新的字串
nsstring *s2 = [[nsstring alloc] initwithstring:s1];
nsstring長度計算方法.
nsstring *str = @」ban長」;
[str length]; // 4
oc中中文相當於1個字元
utf-8編碼中漢子佔3個位元組
多檔案開發
為什麼要使用多檔案?
在開發當中實現的功能一般會比較複雜, 所以會將類分成宣告(.h檔案)和實現(.m檔案)部分
在.h檔案中寫成員變數和方法的宣告,
在.m檔案中寫成員變數和方法的實現.
這樣寫大大提高開發效率, 提高**的維護性.
檔名就是類名
.h和.m名字必須相同(重名)
快捷鍵 cmd+n(學會檢視快捷鍵方法) –> cocoa class (同時幫我們生成.h和.m)
標頭檔案要記得引入
//#import 「」
類方法.
特點:以加號( + )開頭,
呼叫格式: [類名 方法名] [car run];
注意事項:
類方法可以和例項方法同名, 相互之間互不影響
-(void)eat;
+(void)eat;
類方法可以從父類繼承而來,子類可以重寫類方法 // ,如description類方法
類方法和例項方法一樣在inte***ce裡宣告, 在implementation裡實現。
類方法由類名呼叫, 例項方法(物件方法)由物件呼叫。
在類方法裡使用了self, self指代的是呼叫者類
在類方法中不能使用類的成員變數(例項變數/屬性)//重點
類方法和物件方法之間不能使用self 相互呼叫
類方法中呼叫物件方法
1.物件作為方法的引數傳遞過來
2.建立乙個物件呼叫物件方法 person *person = [person new];
類方法呼叫類方法
類方法可以呼叫類方法,但是不要自己呼叫自己
物件方法同樣可以呼叫物件方法,類方法,但是不能自己呼叫自己
self的區分
要清楚self在不同的方法裡面代表不一樣
在物件方法中,self是乙個物件
在類方法中,self代表是乙個類
總結:類方法裡面可以呼叫類方法,物件方法.物件方法裡面也可以呼叫類方法,物件方法,但是要注意self代表什麼,以及不能用self呼叫當前方法,否則會出現死迴圈.
類方法和物件方法的比較
類方法使用場景
如果我們呼叫乙個方法,該方法中不需要使用成員變數,那麼我們可以將該方法宣告為類方法
匿名物件
匿名物件的使用場景: 當物件的方法只呼叫一次時,可以使用匿名物件來完成。
匿名物件優缺點 :
優點: 可以簡化**,方便方法呼叫;節省記憶體空間
缺點: 匿名物件例項化以後,只能正確的使用一次成員變數;
封裝:什麼是封裝:
封裝是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式
封裝的好處:
將變化隔離。(不管裡面怎麼變,使用者不需要知道)
便於使用。(使用者只需按照一定的方法使用就可以了)
提高重用性。(任何人都可以對已封裝好的功能進行操作)
提高安全性。(由於暴露給使用者的只是一些外在的操作環節,而不是裡面本質的東西,所以就提高了對他的維護性,也就是安全性)
封裝的原則:
將不需要對外提供的內容都隱藏起來。
把屬性都隱藏,提供公共方法對其訪問。
setter方法的實現
set方法的書寫規範:
4.1 set方法一定是乙個物件方法
4.2 set方法一定不能有返回值
4.3 set方法必須以set開頭
4.4 set之後跟的是 例項變數去掉下劃線,並且首字母大寫
4.5 set方法一定有引數,而且引數的型別和例項變數的型別一致
4.6 set方法的形參名 一般是 去掉下環線的例項變數名
4.7 形參名不能和例項變數名同名
4.8 set方法實現中,一定要用形參給例項變數賦值
: int _age; 的setter方法
-(void)setage:(int)age
[person setage:10];
get方法書寫規範:
1) get方法一定是乙個物件方法
2) get方法一定有返回值,返回值的型別和例項變數的型別要一致
3) get方法的方法名 是去掉下環線的例項變數名
4) get方法一定沒有引數
5) get方法的實現中,一定是返回例項變數值
: int _age; 的get方法
-(int)age
setter (設定/賦值) 設定屬性不需要返回值 setter之後 物件的屬性就被設定值了
get (獲取/取值) 獲取物件屬性的值(返回例項變數的值) get之後 就可以拿到物件屬性的值
組合模式
了解就可以了
組合模式:把具有相同基類型別的物件組合到樹形結構中,以表示「部分-整體」的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。
依賴關係:a物件作為b物件的區域性變數或是方法形參的,b依賴與a,這時候我們稱a與b之間存在一種依賴關係
人坐車回家
[person gohome:car];
關聯關係
當乙個物件擁有另外乙個物件的時候, 當b物件為a物件的成員變數的時候,b物件與a物件之間存在一種關聯關係
關聯關係是物件導向中最常用一種關係
@inte***ce
person : nsobject
OC多檔案開發介紹
oc 多檔案開發介紹 1 為什麼要使用多檔案?在工作中,通常把不同的類放到不同的檔案中,每個類的宣告和實現分開,宣告寫在.h標頭檔案中,實現寫在相應的.m檔案中去,類名是什麼,檔名的字首就是什麼。假設有兩個類,分別是person類和dog類,則通常有下面五個檔案 1 person.h person ...
OC中如何進行多檔案開發
在工作中,通常把不同的類放到不同的檔案中,每個類的宣告和實現分開,宣告寫在.h標頭檔案中,實現寫在相應的.m檔案中去,類名是什麼,檔名就是什麼。例如 假設有兩個類,分別是person類和dog類,則通常有下面五個檔案 1 person.h person類的宣告檔案 2 person.m person...
OC概念補充(結構體作為物件屬性 多檔案開發)
description方法 問題1 使用 列印乙個物件,輸出的是什麼內容?的原理是什麼?答 問題2 重寫description方法注意點?答 問題1 oc中 是做什麼用的?答 輸出oc的字串使用 就專門用於輸出物件型別的 問題2 如何計算字串的長度?答 oc中呼叫length方法,計算字元的個數,而...