【发布时间】:2014-10-14 19:37:45
【问题描述】:
我已经用 Java 编程了一段时间,我刚刚意识到 protected 访问修饰符允许在同一个包中访问成员。所以这是情况和问题:
我有一个具有protected 方法的类,以及一个使用 Mockito 来存根该方法的测试类。这两个类位于不同的文件夹中(一个src 和一个test),但是它们的包名是一样的!有趣的是,我可以在测试类中调用受保护的方法!我想知道这怎么可能?因为他们的包名是一样的?在这种情况下,protected 修饰符确实允许非常广泛的访问!
【问题讨论】:
-
最后
src和test的所有类都进入bin目标文件夹。看看那里的课程。 -
类位于 src 和 test 中并不重要。在运行时,所有具有相同包名的类都将被视为来自同一个包的类。尝试更改测试类的包,会发现无法访问
protected方法。