访问内部类中的局部变量

时间:2014-02-13 16:17:31

标签: java

package geometry;

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

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

关于可以引用变量base的对象的类,哪个陈述是正确的?

     

一个。它可以是任何一类。

     

B中。没有班级可以访问基地。

     

℃。该类必须属于几何包。

     

d。该类必须是Hypotenuse类的子类

这是来自SCJP Dumps,答案是“C”。因为我的知识答案应该是“B”,因为内部类具有称为“base”的局部变量,并且它仅在内部类中具有范围。即使我想在“几何”类中使用这个变量,我也不允许这样做。

如果我错了,请指导我?

2 个答案:

答案 0 :(得分:4)

类InnerTriangle有一个"包级别"范围,因为您尚未指定任何显式访问修饰符。这意味着允许类中的成员以及包中的成员访问该类。

这就是为什么" C"是正确的答案。

答案 1 :(得分:0)

base是一个公共变量,外部类是一个公共类。因此,内部类范围内的所有类都可以访问它。内部类具有包范围,因此base的范围是包。

相关问题