2010-06-03 140 views
3

如果我有一個嵌套類,那麼擁有的類中的任何東西是否存在於擁有的類中?嵌套類的範圍

例如:

public class OwningClass 
{ 

    int randomVariable = 1; 

    public void MakingMethod() 
    { 
     OwnedClass owned = new OwnedClass(); 
     owned.SomeMethod(); 
    } 

    private class OwnedClass 
    { 
     public void SomeMethod() 
     { 
      // Is anything from OwningClass available here? 
     } 

    } 

} 

回答

6

任何來自擁有類的「靜態」都可以在您的嵌套類中使用。

如果您在內部類的某些方法中擁有擁有類的實例,則還可以訪問其私有成員。

+0

我認爲'靜態'部分由第二部分覆蓋(更好) - 嵌套類也是一個成員,可以訪問私有成員。 – 2010-06-03 20:53:46

+0

的確如此,但我認爲如果將這兩種情況分開,則更爲明確 – 2010-06-03 20:59:34

+1

但其他類也可以訪問任何「public static」。與嵌套無關。 – 2010-06-03 22:19:15

1

除非你在OwnedClass的或通過OwnedClass的的someMethod的constuctor一個的OwningClass的引用傳遞。

享受!

3

嵌套類相對於其父類的唯一變化是可訪問性。嵌套類可以訪問包含類型的私有成員。