OC多檔案開發

2021-07-10 02:20:35 字數 3227 閱讀 5669

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方法,計算字元的個數,而...