内部和外部阶级之间的区别

时间:2019-02-12 04:30:20

标签: java inner-classes

说我们有这个

class Foo {}
public class Bar{}

与之相对:

public class Bar{
  public class Foo{}
}

我不知道有什么区别。在这两种情况下,Foo应该对包含Bar的文件都是私有的。有区别吗?当然,如果我们将其设为静态,那么它可能可用于其他文件?

public class Bar{
  public static class Foo{}
}

但是我要特别问的是没有static关键字的情况。

1 个答案:

答案 0 :(得分:1)

根据Oracle文档,

  

嵌套类是其封闭类的成员。非静态嵌套类(内部类)可以访问封闭类的其他成员,即使它们被声明为私有的也是如此。静态嵌套类无权访问封闭类的其他成员。

有关嵌套类的更多详细信息,请参考此官方文档。

https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html