我是Android開發中的新魚。在閱讀書籍和Android源代碼時,我發現Android應用程序中有許多內部類。爲什麼Android需要這麼多內部類?爲什麼Android中有這麼多的內部類?
我對這些內部類感到困惑。
我是Android開發中的新魚。在閱讀書籍和Android源代碼時,我發現Android應用程序中有許多內部類。爲什麼Android需要這麼多內部類?爲什麼Android中有這麼多的內部類?
我對這些內部類感到困惑。
它們通常是實現設計的最有效方式。
內部類可以訪問包含它的類的私有成員,因此使用內部類允許在類之間進行功能拆分,而無需爲私有變量添加訪問器方法。
不過,最好讓這些成員封裝而不是私有,以避免在引擎蓋下生成額外的訪問器方法。 – yanchenko 2010-07-13 07:02:27
內部類不僅在Android
。我想你需要明白爲什麼他們在某些情況下是好的。
查看關於內部類的文章:Inner classes: So what are inner classes good for anyway?。
我猜你以前一直在做C/C++。這些內部類不是特定於Android的。他們來自Java。在Java中,堆棧(在我們生活的C/C++中)不以相同的方式存在。把Java字節碼想象成一個二進制可執行文件存在於一個函數內(有點像在C/C++的主函數中寫入所有代碼)。但是Java可以讓你成爲「面向對象」,並將你的代碼本地化爲不同任務的類。它還允許您從另一個類派生並同時實例化它。這就是你在所有例子中看到的。 「Macarse」提供的鏈接爲Java程序員解釋了這一點。
這也可能會感興趣:
Android: AsyncTask recommendations: private class or public class?
由於不知道爲什麼,但是這是首選內或outter類AsyncTasks,最容易出現的一個類用作內。
簡單地說,當翻譯成字節碼時,內部類在相同包中作爲外部類「重建」爲 。這意味着 包中的任何類都可以訪問此內部類。所有者/封閉/父親 類的私有字段被變形爲受保護的字段,因爲它們是現在外部的內部類可以訪問的 。
因此,基本上,它只是一個「快捷方式」是有損自己的設計的安全性。
所以,在這個意義上,Android沒有「需要」。
在android – 2010-07-12 05:31:54
上提供了「內部類」的意思的完整描述我對你的困惑感到困惑。 – Qberticus 2010-07-12 06:07:03