我是Android开发中的新鱼。在阅读书籍和Android源代码时,我发现Android应用程序中有这么多内部类。为什么Android需要这么多内部类?
我对这些内部类感到困惑。
答案 0 :(得分:7)
它们通常是实现设计的最有效方式。
内部类可以访问包含它的类的私有成员,因此使用内部类允许在类之间拆分功能,而无需为私有变量添加访问器方法。
答案 1 :(得分:5)
答案 2 :(得分:3)
简单地说,当翻译成字节码时,内部类被“重建” 作为同一包中的外部类。这意味着任何一个班级 包可以访问这个内部类。所有者/封闭/父亲 类的私有字段按原样变换为受保护的字段 现在的外部内部阶级可以访问。
所以基本上,它只是一种危害你自己设计安全性的“捷径”。
因此,在这个意义上,Android并没有“需要”。
答案 3 :(得分:2)
我猜你以前一直在做C / C ++。这些内部类不是特定于Android的。他们来自Java。在Java中,堆栈(我们生活在C / C ++中)不以相同的方式存在。将Java字节代码视为存在于一个函数内的二进制可执行文件的blob(有点像在C / C ++中编写主函数内的所有代码)。但Java允许您“面向对象”并在类中本地化您的代码以执行不同的任务。它还允许您从另一个类派生并同时实例化它。这就是你在所有例子中看到的。 “Macarse”提供的链接为Java程序员解释了这一点。
答案 4 :(得分:0)
您可能也会对此感兴趣:
Android: AsyncTask recommendations: private class or public class?
它不是为什么,但它是AsyncTasks的首选内部或外部类,是最容易被用作内部的类。