package?outerAndInnerClass;
public?class?Outer?{
????private?int?x?=?100;
????private?String?y?=?"hello?world";
????//?成員內(nèi)部類
????class?Inner?{
????????private?String?y?=?"hello";
????????private?void?innerMethod()?{
????????System.out.println("內(nèi)部類中的y是:"+y);
????????System.out.println("外部類中的y是:"+Outer.this.y);
????????System.out.println("外部類中的x是:"+x);
????????//?內(nèi)部類調(diào)用外部類中的方法
????????outerMethod();
????????System.out.println("調(diào)用外部類方法后,外部類中的x是:"+x);
????????}
????}
????public?void?outerMethod()?{
????????x++;
????}
????//?外部類方法中創(chuàng)建內(nèi)部類對象
????public?void?makeInner()?{
????????Inner?in?=?new?Inner();
????}
????public?static?void?main(String[]?args)?{
????????//?創(chuàng)建外部類對象out
????????Outer?out?=?new?Outer();
????????//?通過外部類對象創(chuàng)建內(nèi)部類對象(類似實例變量需要通過對象來訪問)
????????Outer.Inner?in?=?out.new?Inner();
????????//?外部類調(diào)用內(nèi)部類中的方法
????????in.innerMethod();
????}
}上述代碼中,問題1:21-23行是不是錯誤的?如果是錯的,怎么不報錯?問題2:那26-28行,我還見過這樣寫的:Outer?out?=?new?Outer();
Inner?in?=?out.new?Inner();通過外部類對象創(chuàng)建內(nèi)部類對象的語法規(guī)范到底是哪個?還是說有好幾種方法(如果有,煩請介紹下)?
添加回答
舉報
0/150
提交
取消