靜態(tài)內(nèi)部類是定義其外部類的內(nèi)部和外部類沒(méi)有成員依賴關(guān)系腻窒,也就是說(shuō)靜態(tài)內(nèi)部類可以獨(dú)立創(chuàng)建對(duì)象糙申,而不像之前介紹過(guò)的成員內(nèi)部類必須通過(guò)外部類對(duì)象來(lái)創(chuàng)建內(nèi)部類對(duì)象。
靜態(tài)內(nèi)部類在定義時(shí)加上static關(guān)鍵字拨齐,其內(nèi)部和普通的類一樣可以成員變量和方法鬓椭。需要注意靜態(tài)內(nèi)部類與成員內(nèi)部類不同的是:
成員方法不能真接訪問(wèn)外部類所成員變量和方法,只能訪問(wèn)外部類的靜態(tài)成員變量和靜態(tài)方法娜饵。
classOutter{
publicstaticinta;
publicstaticvoidsettA(inta){
Outter.a=a;
}
privateintb;
publicvoidsettB(intb){
this.b=b;
}
publicstaticclassInner{
intc;
publicvoidsetC(intc){
this.c=c*a;
//this.c=c+b;不能訪問(wèn)外部成員變量
}
publicvoidprint(){
System.out.println("Outter.a="+a);
System.out.println("Inner object.c="+c);
}
}
}
publicclassDemo1 {
publicstaticvoidmain(String[]args) {
Outter.Innerin=newOutter.Inner();
Outter.a=10;
in.setC(20);
in.print();
}
}
運(yùn)行程序坡贺,結(jié)果如下圖所示: