当前位置: 首页 > 面试题库 >

什么是静态嵌套类?

狄易安
2023-03-14
问题内容

什么是静态嵌套类?静态和非静态嵌套类有什么区别?


问题答案:

静态内部类是嵌套在具有static修饰符的另一个类中的类。除了可以访问在其内部定义的类的私有成员之外,它与顶级类几乎相同。

class Outer {
    private static int x;
    static class Inner1 {
    }
    class Inner2 {
    }
}

Inner1是静态内部类。类Inner2是一个非静态的内部类。两者之间的区别是,非静态内部类的实例被永久连接到的实例Outer-你不能创建一个Inner2没有Outer。不过,您可以Inner1独立创建对象。

中的代码OuterInner1并且Inner2都可以访问x; 不允许使用其他代码。



 类似资料:
  • 问题内容: 我正在查看Java代码,并注意到它使用了静态嵌套类。 使用静态嵌套类而不是普通内部类的原因是什么? 我能想到的唯一原因是Entry不能访问实例变量,因此从OOP的角度来看,它具有更好的封装性。 但是我认为可能还有其他原因,也许是性能。可能是什么? 注意。我希望我的术语正确,可以将其称为静态内部类,但是我认为这是错误的:http : //java.sun.com/docs/books/t

  • 问题内容: Android示例中的“登录”实现为非静态内部类。但是,根据Commonsguys的观点,此类应该是静态的,并且使用对外部活动的弱引用参见this。 那么正确的实现方式是什么?静态还是非静态? Commonsguy实现 https://github.com/commonsguy/cw- android/tree/master/Rotation/RotationAsync/ 从Googl

  • 问题内容: 我开始用Java编程。 一本书说,在这种情况下,我应该使用static,但没有明确说明为什么应该使用静态方法或含义。 你能澄清一下吗? 问题答案: 的概念与某物是类的一部分还是对象(实例)有关。 对于声明为的方法,它表示该方法是一个类方法- 该方法是类的一部分,而不是对象的一部分。这意味着另一个类可以通过引用来调用另一个类的类方法。例如,调用的run方法可以通过以下方式完成: 另一方面

  • 问题内容: 我已经开始学习用于Android应用程序开发的Java语言。 根据我对静态类的理解,我们无法实例化静态类的对象。 但是,为什么在随后的情况下允许实例化静态嵌套类对象? 如果将内部类的对象标记为静态,为什么我们可以创建它呢? 问题答案: 根据我对静态类的理解,我们无法实例化静态类的对象。 您对“静态类”的含义的理解不正确。基本上, Java中 的“静态类” 是嵌套类,它没有对包含类的实例

  • 问题内容: 我刚刚在我们的代码库中找到了一个静态嵌套接口。 我以前从未见过。原始开发人员遥不可及。因此,我不得不问: 静态接口背后的语义是什么?如果我删除,会发生什么变化static?为什么有人会这样做? 问题答案: 上例中的static关键字是多余的(嵌套接口自动为“ static”),可以删除而不会影响语义;我建议将其删除。接口方法上的“公共”和接口字段上的“公共最终”也是如此-修饰符是多余的