前提是這個(gè)內(nèi)部類(lèi)必須是 public 。
假設(shè)外部類(lèi)需要實(shí)例化某個(gè)類(lèi)的內(nèi)部類(lèi)。那么必須首先實(shí)例化內(nèi)部類(lèi)的所在類(lèi),然后再通過(guò) .new 語(yǔ)法來(lái)實(shí)例化這個(gè)內(nèi)部類(lèi)。下面是一個(gè)示例:
public class DotNew {
public class Inner {
}
public static void main(String[] args) {
DotNew dn = new DotNew();
DotNew.Inner dni = dn.new Inner();
}
}
首先實(shí)例化內(nèi)部類(lèi)的所在類(lèi)(DotNew),然后再通過(guò) .new 語(yǔ)法來(lái)實(shí)例化這個(gè)內(nèi)部類(lèi)(Inner)。
也就是說(shuō)不能直接實(shí)例化內(nèi)部類(lèi),必須通過(guò)所在類(lèi)的實(shí)例,來(lái)間接實(shí)例化。
參考:
BruceEckel, ??藸? 陳昊鵬. Java編程思想[J]. 機(jī)械工業(yè)出版社, 2007. p193.