內(nèi)部類
內(nèi)部類是定義在類的內(nèi)部的類,其所在的類稱為外部類。內(nèi)部類分為成員內(nèi)部類和靜態(tài)內(nèi)部類。
成員內(nèi)部類是依賴于外部類的,其對象可以訪問外部類的成員變量和方法,其目的是為外部類提供復(fù)合成員數(shù)據(jù)和算法,例如List接口的實例類都提供了遍歷元素的迭代器,這些迭代器都是實現(xiàn)了Iterator接口的位于List接口實現(xiàn)類的內(nèi)部或方法中。成員內(nèi)部類不能獨立實例化,必須通過外部類的對象才能實例化,如下例的代碼:
Outter.Inner in=out.new Inner();
其中out是外部類的對象。
packaged;
classOutter{
intvalue;
publicintgetValue(){
returnvalue;
}
publicvoidsetValue(intvalue){
this.value=value;
}
@Override
publicString toString() {
return"Outter.value="+value;
}
classInner {
intval;
publicintgetVal() {
returnval;
}
publicvoidsetVal(intval) {
this.val=val;
}
publicvoidsetOutterVal(intv) {
value=v;//訪問外部類成員變量
}
publicString toString() {
return"Inner.val="+val;
}
}
}
publicclassDemo {
publicstaticvoidmain(String[]args) {
Outterout=newOutter();
out.setValue(100);
System.out.println(out);
Outter.Innerin=out.newInner();
in.setVal(50);
System.out.println(in);
in.setOutterVal(200);
System.out.println(out);
}
}
運行程序,結(jié)果如下圖所示: