2014-02-13 95 views
6
package geometry; 

public class Hypotenuse { 
    public InnerTriangle it = new InnerTriangle(); 

    class InnerTriangle { 
     public int base; 
     public int height; 
    } 
} 

對於可以引用變量基的對象的類,哪個語句是正確的?答:它可以是任何類。訪問內部類中的局部變量

B.沒有班級有權訪問基地。 C.該類必須屬於幾何包。

D.類必須是類斜邊

這是SCJP轉儲的一個子類,答案是「C」。因爲我的知識答案應該是「B」,因爲內部類具有名爲「base」的局部變量,並且它僅在內部類中具有作用域。即使我想在「幾何」類中使用這個變量,我也不允許這樣做。

請指導我,如果我錯了?

+0

通過該參數,不能在另一個類文件中訪問字段,因爲它們也不在該範圍之內。 –

+0

'it.base'可能會被包本地類調用(因爲InnerTriangle是一個包本地名)。 –

回答

4

由於您沒有指定任何顯式訪問修飾符,因此InnerTriangle類具有「包級別」範圍。這意味着班上的成員以及包中的成員都可以進入班級。

這就是爲什麼「C」是正確的答案。

0

base是一個公共變量,外部類是公共類。因此,內部類的範圍內的所有類都可以訪問它。內部類具有包範圍,所以base的範圍就是包。