類別
是一種為現有的類新增新方法的方式。
//類別的作用:
//(1)將類別實現分散到多個不同檔案或多個不同框架中
//(2)建立私有方法的前向引用
//(3)向物件新增非正式協議
//類別的侷限性:
//(1)無法新增新的例項變數
//(2)名稱衝突,如果類別和現有的方法重名,類別具有更高的優先順序,解決辦法,類別方法名中新增乙個字首
什麼時候使用類別?
(1)類別只能新增新方法,無法新增新的例項變數(2)如果類別名和原來類中的方法產生名稱衝突,則類別將覆蓋原來的方法,因為類別具有更高的優先順序。
要注意的是objective-c只支援單繼承,如果要實現多繼承的話,可以通過類別和協議的方式來實現。
另外要特別注意的是,類別不能像繼承時那樣給類別介面增加新的例項變數,而是要擴充套件乙個類的行為。
類別的名稱是任意的。
@inte***ce nsstring (numberconvenience)
- (nsnumber *)lengthasnumber;
@end
(1)為nsstring類新增乙個名稱為numberconveniencede的類別;類別名稱具有
唯一性
,你可以向乙個類中新增
任意多
的類別。
(2)可以指定希望向其新增類別的類(nsstring),以及類別的名稱(numberconvenience),而且你還可以
列出新增的方法
,最後以@end結束;類別宣告部分
不能有例項變數部分
。@implementation nsstring (numberconvenience)
- (nsnmuber *)lengthasnumber{
unsigned int length = [self length];//獲得字串長度
return ([nsnumber numberwithunsignedint :length]);
}@end
自己在xcode 4.3.2中可以直接基於
類別的作用?
有時我們需要在乙個已經定義好的類中增加一些方法,而不想去重新寫該類。比如當 工程已經很大,量比較多,或者類中已經抱住很多方法,已經有其他 呼叫了該 類建立物件並使用該類的方法時,可以使用類別對該類的擴充新的方法。注意 類別只能擴充方法,而不能擴充成員變數。委託 舉例 委託 degegate 顧名思義...
類別的設計
1 先制定協定,再實作 2 優點 事前的規則使類別更完善 較佳的類別版本控制取向 使用起來較有彈性 3 使用介面制定協定 代表使用者端與伺服端之間的協定,不包含資料及任何實作的程式碼 程式碼易動時,使用介面,不需要改程式碼 不同的類別均支援相同的操作 使用介面輕易就可實作多型 使用ado.net的介...
資產類別的功能
用途 資產類別是結構化固定資產的最重要方法。可在系統中定義任意數量的資產類別。使用資產類別並根據企業要求來結構化資產。資產類別適用於所有公司 因此,資產類別目錄與客戶端中的所有公司 相關。當公司 具有不同的折舊表因而具有不同的折舊範圍時,情況也是如此。前提 在資產會計的定製中定義資產類別。選擇組織結...