物件 delegate self的理解

2022-03-12 16:54:29 字數 688 閱讀 7012

整理自:

各位大神,物件.delegate=self是啥意思,委託的意思不就是自己的任務交給其他人去做麼,那麼按這麼理解自己的任務還需要委託麼?望高手解惑.謝謝

「委託的意思不就是自己的任務交給其他人去做麼」你這麼理解是對的

物件.delegate=self的意思就是物件的任務交給self去做 物件!=self

假如你有物件a 物件b

a是b的成員變數

class

b在b中寫這麼一句「a.

delegate=self」

按你的理解 應該是a的任務交給b去完成 理解了沒

其實還有兩方面的理解:

1.委託是繼承的一種實現。比如a委託 給b , b實現了a中的方法。有點類似b繼承了a。

2.委託方法能夠讀取被委託物件的屬性和方法,這點可以部分解答了你問的「委託必要性」。

比如a委託 給b,在b中實現的委託方法就可以像a中的其他方法一樣訪問b中的屬性。

自己能做的就不用給別人做了。

把delegate給別人的話,是要別人處理一些資料返回到自己

你是boss,你有個專職秘書,給客戶傳達檔案,需要你自己動手麼?告訴小秘,去把這個資料給客戶發過去.

小秘送完了,告訴你,老闆資料送完了,可以進行下乙個流程了.

物件的上轉型物件

假設animal類是tiger類的父類,當用子類建立乙個物件,並把這個物件的引用放到父類的物件中時,比如 animal a a new tiger 或 animal a tiger b new tiger a b 這時,稱物件a是物件b的上轉型物件 好比說 老虎是動物 物件的上轉型物件的實體是子類負...

物件和物件的引用

stringbffer strb new stringbuffer abc new stringbuffer abc 是呼叫stringbuffer類的建構函式建立了乙個物件 strb是new stringbuffer abc 這個物件的引用 new方法建立的才是真正的物件 引用只是指向物件的乙個變...

物件導向 物件的組合

組合 乙個類的例項可以當做引數傳給另乙個類的例項 class school def init self,name,address self.name name self.address address class course def init self,name,price,outline,sch...