2014-06-25 49 views

回答

3

A private類對同一文件中的所有方法和嵌套類都可見。通常情況下,您會認爲私有作爲縮小使用範圍,但在這種情況下,使用private擴大該範圍的類是以Java不支持的方式可見。

製作方法私有相同這樣

class outer { 
     private class inner { // Line-1 
      public void showinner() { 
       System.out.println("I am in Inner Class");  
      } 
     } 

     public void outerfunction() {  

    } 
} 

,直到你認爲這是一個嵌套類可以使用該值在它的外背景下也很正常。

class outer { 
    public void printInner() { 
     // accessible in the same .java file because we made it private 
     inner i = new inner(); 
     i.showInner(); // what should `x` be? 
    } 

    public void outerfunction(final int x) {  
     private class inner { // Line-1 
       public void showinner() { 
        System.out.println("I am in Inner Class, x= " + x);  
       } 
      }  
    } 
} 
+0

請問您能解釋一下嗎?謝謝 ! –

+0

@ShashankJain方法方法中的本地類只對該方法可見,而不是與'private'嵌套類相同的文件中的所有內容。 –

+0

那麼爲什麼最終被允許? –

相關問題