方法中內(nèi)部類(lèi)問(wèn)題
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("訪問(wèn)外部類(lèi)的方法中的常量a:"+a);
????????????????System.out.println("訪問(wèn)內(nèi)部類(lè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)部類(lèi)的外面就可以了
2016-07-23
方法內(nèi)部類(lèi)是通過(guò)在外部類(lèi)的方法內(nèi)實(shí)例化內(nèi)部類(lèi),而不是在內(nèi)部類(lèi)里面實(shí)例化,因?yàn)橥獠恳L問(wèn)方法內(nèi)部類(lèi)的信息,必須要通過(guò)包裹內(nèi)部類(lèi)的方法,而在該方法中訪問(wèn)內(nèi)部類(lèi)也只有通過(guò)內(nèi)部類(lèi)的引用來(lái)訪問(wèn)內(nèi)部類(lèi)的信息,你在內(nèi)部?jī)?nèi)中引用就相當(dāng)于讓內(nèi)部類(lèi)中的信息與外部隔絕了
2016-07-23
方法內(nèi)部類(lèi)中不可以使用修飾符的。
?public void print(){
????????????????System.out.println("訪問(wèn)外部類(lèi)的方法中的常量a:"+a);
????????????????System.out.println("訪問(wèn)內(nèi)部類(lèi)中的變量c:"+c);
????????????}
你應(yīng)該去掉print()方法前的修飾符public
2016-07-23
class MInner{
? ? ? ? int c=2;
? ? ? ? ? ? public void print(){
? ? ? ? ? ? ? ? System.out.println("訪問(wèn)外部類(lèi)的方法中的常量a:"+a);
? ? ? ? ? ? ? ? System.out.println("訪問(wèn)內(nèi)部類(lèi)中的變量c:"+c);
? ? ? ? ? ? } ? ? ? ? ? ?
? ? ? ? }
? ? ? ? MInner mi=new MInner();
? ? ? ? mi.print();
對(duì)象的創(chuàng)建應(yīng)該在類(lèi)的聲明結(jié)束之后