ove*_*nge 6 java nested-class inner-classes
非静态成员类的构造函数采用额外的隐藏参数,该参数是对直接封闭类的实例的引用.还有一个'new'的语法扩展.
在下面的代码中,
class K{
static class Ka{
static class Kb{
class Kc{
class Kd{
}
}
}
}
}
class Test{
K.Ka.Kb.Kc.Kd k = new K.Ka.Kb().new Kc().new Kd();
}
Run Code Online (Sandbox Code Playgroud)
能否请您帮助我理解的意思Kb()
的K.Ka.Kb().new Kc().new Kd()
?据我所知,这new Kc()
是第一段所述.
你指出的括号实际上并不适用于Kb
但是K.Ka.Kb
.
new K.Ka.Kb()
Run Code Online (Sandbox Code Playgroud)
正在创建K.Ka.Kb
嵌套类的新实例.
它正在调用 的构造函数Kb
。用三个语句更容易说明这一点:
K.Ka.Kb x1 = new K.Ka.Kb();
K.Ka.Kb.Kc x2 = x1.new Kc(); // Pass x1 as the hidden constructor arg
K.Ka.Kb.Kd.Kd k = x2.new Kd(); // Pass x2 as the hidden constructor arg
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
332 次 |
最近记录: |