2014-02-13 49 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的范围就是包。