获取对java中包含类的引用
我是Java新手。我是C++程序员,阅读一些java代码。我有这样的阶级定义:
class Container {
long ID;
class Contained {
void foo(){
long parentID = ID;
}
}
}
我发现Contained可以访问Container类的任何成员,只需通过名称即可
我有一个问题:
这是怎么回事?在C++中,这些类将是无关的。但在Java中,所包含的类对象似乎隐式地绑定到父类对象的实例
谢谢 曼尼什语
PS:对不起,我知道我可以买一本关于Java的书,但我希望有人能帮我
# 1 楼答案
这是一个嵌套类。它的生命周期与父类相关联。阅读here以获得充分理解
# 2 楼答案
在Java中,这些被称为嵌套类。有几种类型的嵌套类具有不同的语义。有关于http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html的信息
在您的示例中,它是一个内部类,因此它的实例存在于外部类的一个实例中
# 3 楼答案
由于
Contained
类没有声明为static
,这意味着它只能存在于Container
类的实例中,因此可以访问Container
的所有方法和变量如果你已经声明^ {CD1>}为^ {< CD2>},它将模仿你更习惯使用的C++用法,你可以有嵌套类的实例而没有^ {CD3>}的实例。
详见Java inner class and static nested class