我只想根据如何从封闭类或彼此的内部类访问成员来区分差异。
关于静态,最终,有效的最终成员以及为什么?
答案 0 :(得分:2)
静态嵌套类实际上与使用单独的类文件相同,除非您将其放在另一个类文件中。
如果它不是静态的,则称为内部类。 内部类可以访问其封闭类的所有成员。如果是静态嵌套类,它们可以在不实例化的情况下存在,但内部类只能存在于其封闭类的实例中。
您应该注意概念的命名。简而言之:
public
membrs official documentation详细解释了这一点,所以我建议你仔细阅读。有关本地和匿名内部类的信息也可以在那里找到。
答案 1 :(得分:1)
private
成员在嵌套类中是可见的,同样,嵌套类的private
成员对外部类是可见的。
如果嵌套类为static
,则只能看到外部类的static
个成员,包括private static
。
除非嵌套类为static
,否则您需要外部类的实例才能实例化嵌套类。这是有道理的 - 对于非静态嵌套类,您只能从外部类的实例访问嵌套类的类定义,就像它是成员变量一样。
除嵌套类外,还有匿名内部类。这些不是静态的,但显然它们的范围仅限于定义它们的方法。
答案 2 :(得分:-1)
我只想根据如何从封闭类或彼此的内部类访问成员来区分差异。
没有区别。每个人都可以看到所有其他成员。
你没有问,但是如果封闭的类是static.
则存在差异。静态嵌套类只能访问封闭类的静态成员。 [它可以在访问控制方面“看到”非静态成员,但它没有外部对象的内在句柄,因此无法访问它们。]
关于静态,最终,有效的最终成员以及为什么?
这甚至不是一句话,更不用说一个问题了。