如果一个类的可见性包是私有的,是否还有任何要点设置方法具有该可见性,因为您无法首先访问这些方法?包私人访问修饰符
Q
包私人访问修饰符
1
A
回答
1
例如,包私有类可能会实现一些接口并在包的外部使用。在这种情况下,实施的方法应该是public
。您也可以通过private
访问修饰符来限制同一包中某些成员的使用。
package pkg1;
public interface SomeInterface {
void m();
public static SomeInterface getImplementation() {
return new A();
}
}
class A implements SomeInterface {
@Override
public void m() {}
public void m2() {} // this one cannot be called from other packages
private void m3() {} // this one might be used only in class A
}
package pkg2;
import pkg1.SomeInterface;
public class Main {
public static void main(String[] args) {
SomeInterface implementation = SomeInterface.getImplementation();
implementation.m();
}
}
0
简单的回答是,如果一个类将要实施或扩展。不,如果它不会被延伸或实施。如何强烈建议仍然制作不希望其他课程看起来是私密的方法或变量。如果您希望更改类的可见性,并在长期运行时使代码更易读,这将节省以后的时间。
相关问题
- 1. 公共和私人访问修饰符
- 2. 私人访问修饰符的澄清
- 3. 访问修饰符:私人与保护
- 4. 包访问(protected修饰符)
- 5. Java包,私人的访问修饰符行为包冲突的情况下
- 6. Resharper - 如何关闭'私人'访问修饰符?
- 7. 自助式私人修饰符
- 8. Delphi访问修饰符
- 9. 内部访问修饰符
- 10. 库级访问修饰符
- 11. EventInfo访问修饰符
- 12. 动态访问修饰符
- 13. 练习访问修饰符
- 14. 类访问修饰符
- 15. 保护访问修饰符
- 16. 通过访问修饰符
- 17. C#中私人和公共访问修饰符之间的区别?
- 18. 是私人和公共访问修饰符在性能上有所不同吗?
- 19. 私有和公共java访问修饰符基础知识
- 20. 需要说明:java中的私有访问修饰符
- 21. 斯卡拉私有访问修饰符范围
- 22. Java访问修饰符:无修饰符与“默认”
- 23. 访问修饰符C# - 内部修饰符
- 24. 访问修饰符VS属性
- 25. Java访问修饰符优先
- 26. 成员类访问修饰符
- 27. C++子类访问修饰符?
- 28. 访问Javascript中的修饰符
- 29. 访问修饰符的内部类
- 30. 在java中访问'final'修饰符类
简短的回答是否定的,没有意义。 –
如果将来改变类的可见性,它可能会阻止未来访问这些方法, – Nicolas
是的,有一点。有人可能能够通过反射来获取方法,如果它们是公开的,甚至在禁止'setAccessible'调用的SecurityManager下运行。一般来说,如果有些东西不是为了公共使用,请不要公开。 – VGR