亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“類方法”和“靜態方法”有什么區別?

“類方法”和“靜態方法”有什么區別?

FFIVE 2019-10-18 10:59:30
我使用過幾種不同的語言,例如Java,C#和Objective-C。在大多數語言中,不需要對象實例的方法稱為靜態方法。但是,涉及到Objective-C時,有些人在調用靜態方法時會感到防御,他們希望您將其稱為類方法。為什么將它們稱為類方法而不是靜態方法?靜態方法和類方法有什么區別?
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

盡管實際上大多數時候類方法和靜態方法是相同的,但是它們是不同的。使用靜態方法,該類充當名稱空間限定符。對于類方法,類本身是一個對象,因此類方法對于類對象而言與實例方法對實例的作用完全相同。因此,您可以執行以下操作


@interface TestClass : NSObject

+ (void)classOrInstanceMethod;

- (void)classOrInstanceMethod;

@end

...

NSArray * arr = [NSArray arrayWithObjects:

                        [[[TestClass alloc] init] autorelease],

                        [TestClass class],

                        nil];

for( id obj in arr )

    [obj classOrInstanceMethod];

調用哪個版本的classOrInstanceMethod取決于obj是類對象還是and實例。如果您熟悉工廠類模式,則此模式是Objective-C語言的一部分。


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 1491 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號