我已经读过我可以定义一个类static,但我不明白为什么我可能需要这样做.静态类有什么用?我什么时候需要使用它们?我会很感激的例子.
static类的关键字仅允许嵌套类在另一个类中.
非静态嵌套类(也称为内部类)和静态嵌套类之间的区别在于,第一个对象的对象始终具有相应的"外部"对象,而后者的对象则不具有(它们仅具有私有级访问权限) ,并在命名空间内).
这是一个例子:
class Outer {
static class StaticNested {}
class Inner {}
}
Run Code Online (Sandbox Code Playgroud)
现在我们可以创建如下对象:
Outer o = new Outer();
Outer.StaticNested sn = new Outer.StaticNested();
Outer.Inner i = o.new Inner();
Run Code Online (Sandbox Code Playgroud)
oist对应的外部对象i,而sn没有这样的元素.(通常,您将从外部对象的方法创建内部类的对象,您可以简单地编写new Inner()它,并将其this作为外部对象.)
从外面Inner我们无法获得相应的外部对象,但在其中我们可以写入Outer.this引用外部对象.如果需要,这可以在多个级别上工作.