方法中內(nèi)部類問題
package com.imooc;
public class Demo53 {
????public void show(){
????final int a=25;
????int b=13;
????????class MInner{
????????int c=2;
????????????public void print(){
????????????????System.out.println("訪問外部類的方法中的常量a:"+a);
????????????????System.out.println("訪問內(nèi)部類中的變量c:"+c);
????????????}
????????????MInner mi=new MInner();
????????????mi.print();
????????}
????}
????public static void main(String[] args) {
????Demo53 mo=new Demo53();
????mo.show();
????}
}
mi.print();爆紅怎么回事? 大神幫看看
2016-07-23
?MInner mi=new MInner();
????????????mi.print();
兩句放在內(nèi)部類的外面就可以了
2016-07-23
方法內(nèi)部類是通過在外部類的方法內(nèi)實(shí)例化內(nèi)部類,而不是在內(nèi)部類里面實(shí)例化,因?yàn)橥獠恳L問方法內(nèi)部類的信息,必須要通過包裹內(nèi)部類的方法,而在該方法中訪問內(nèi)部類也只有通過內(nèi)部類的引用來訪問內(nèi)部類的信息,你在內(nèi)部內(nèi)中引用就相當(dāng)于讓內(nèi)部類中的信息與外部隔絕了
2016-07-23
方法內(nèi)部類中不可以使用修飾符的。
?public void print(){
????????????????System.out.println("訪問外部類的方法中的常量a:"+a);
????????????????System.out.println("訪問內(nèi)部類中的變量c:"+c);
????????????}
你應(yīng)該去掉print()方法前的修飾符public
2016-07-23
class MInner{
? ? ? ? int c=2;
? ? ? ? ? ? public void print(){
? ? ? ? ? ? ? ? System.out.println("訪問外部類的方法中的常量a:"+a);
? ? ? ? ? ? ? ? System.out.println("訪問內(nèi)部類中的變量c:"+c);
? ? ? ? ? ? } ? ? ? ? ? ?
? ? ? ? }
? ? ? ? MInner mi=new MInner();
? ? ? ? mi.print();
對象的創(chuàng)建應(yīng)該在類的聲明結(jié)束之后