2013-12-07 149 views
-5

如果我有一個內部類(非靜態)例如:的Java內部類 - 訪問外部對象的變量

public class A { 
    int myNumber = 100; 

    class B { 
    } 

    public static void main(String[] args) { 
     A outerObj = new A(); 
     B innerObj = outerObj.new B(); 
     System.out.println("i want the access to the variable 
          myNumber by the innerObject"); 

    } 
} 

我的意思是: 我將與innerObject想達到outerObject,看到了變量myNumber。 我可以做到這一點,只是如果我在一個B類的方法...但我希望到處都可以看到outerObj由內部變量....它有可能嗎? 如果不是爲什麼?
感謝

+0

沒有可變的麻木。請澄清。 – MightyPork

+0

@MightyPork他可能的意思是'myNumber' ... –

+0

是的,我的意思是myNumber對不起 –

回答

1

我假設你想是這樣的:

class B 
{ 
    private int getNum() 
    { 
     return myNumber; 
    } 

    private void setNum(int x) 
    { 
     myNumber = x; 
    } 
} 

但是,您不能得到的B一個實例,b訪問myNumber,通過做b.myNumberHere's爲什麼。

+0

是的我知道,但我不想在類b中輸入讀取外部對象的變量...我會直接閱讀它們在主要方法或其他方法,但不是類b –

+0

@GiovanniFar然後,你可以只讀A級?你說的話對我沒有意義。你想閱讀沒有A的A的成員,但是隻能用A初始化一個嵌套類?但是你不想使用方法?爲什麼?如果是這樣,你需要訪問A. –

+0

不,我的意思是這樣的: 我的innerObj指向外部對象好嗎? innerObj有一種方法可以使用類b來查看outerObject WITOUHT的變量,因此無需使用innerobj的類?我想知道是否innerobj我可以在任何地方看到outerobj的變量,或者只是在類b中,爲什麼 –