1.成員內(nèi)部類
public class class1{
private class class2{
//內(nèi)部類可以調(diào)用外部類中任意方法或者 ?//成員變量
}
}
外部類不能直接使用內(nèi)部類的成員變量或方法割以,需要實例化內(nèi)部類對象引用售滤。
在外部類中或非靜態(tài)方法中實例化內(nèi)部類對象:
new class2();
否則需要在new前提供一個外部類引用:
class1 outer=new class1();
class1.class2 inner=outer.new class2();
當局部變量拐袜、內(nèi)部類成員變量、外部類成員變量同名,在內(nèi)部類時
局部變量:變量名;
內(nèi)部類隱藏變量:this.變量名;
外部類隱藏變量:class1.this.變量名露乏。
在外部類則先實例化內(nèi)部類對象引用: 引用.變量名衍菱。
2.局部內(nèi)部類
public class class3{
? ? ?fun1{
? ? ? ? ?class class4{
? ? ? ? ?}
? ? ?}
}
內(nèi)部類在fun1方法外不能被訪問,但是內(nèi)部類可以訪問class3中的變量成員懦胞。
在fun1方法中實例化內(nèi)部類對象替久。
3.匿名內(nèi)部類
return new class5(){
};
4.靜態(tài)內(nèi)部類