背景:
internal
方法作为程序集(JAR)TLDR:如果方法是公开的,我如何指示(或更好地保护)我的API内部方法不被我的API类外的用户调用?
典型示例:
// public class in com.ashes999.components
class SpriteComponent {
// This method should be internal
public void dispose() { ... }
}
// public class in com.ashes999.management
class SceneManager {
public void changeScene(Scene s) {
for (SpriteComponent s : this.allEntities.allSprites) {
s.dispose();
}
}
}
我只会在SpriteComponent.dispose
中从我自己的班级中拨打com.ashes999.*
。我永远不会期望(甚至希望)其他用户会直接打电话给它;这样做会导致混乱,破坏,混乱和非托管资源过早处理,造成崩溃。
答案 0 :(得分:4)
可以使用修饰符public声明一个类,在这种情况下,该类对所有类都可见。 如果一个类没有修饰符(默认,也称为包私有),它只在其自己的包中可见(包被命名为相关类的组 - 您将在稍后了解它们教训。)
在会员级,您也可以使用公共修饰符或不使用修饰符(包私有),就像使用顶级类一样意思相同。对于成员,还有两个额外的访问修饰符:private和protected。 private修饰符指定只能在自己的类中访问该成员。 protected修饰符指定只能在自己的包中访问该成员(与package-private一样),此外,还可以在另一个包中通过其类的子类访问该成员。