当前位置: 首页 > 面试题库 >

包私有类中的公共方法

房泉
2023-03-14
问题内容

将方法标记为public程序包专用类是否有所不同?

class SomePackagePrivateClass
{
    void foo();          // package private method

    public void bar();   // public method
}

之间foobar此处的可见性是否有实际差异?


问题答案:

如果该类不会被另一个更可见的子类扩展,则唯一的区别是 intent的清晰度*
。将所有方法包都声明为私有,使以后的读者更加难以确定同一包中的其他类将调用哪些方法。

  • 作为我的设计解决方案,这没有多大意义,但是从技术上来说还是有可能的。


 类似资料:
  • 问题内容: 我当时正在上课,我想到了几个问题。 我注意到,其他类将使用的公共方法调用了一些私有方法来完成所有工作。现在,我知道OOD的原则之一就是尽可能多地私有化并隐藏所有实现细节。我不确定我是否完全理解其背后的逻辑。 我知道将字段设为私有很重要,以防止将无效值存储在字段中(这只是许多原因之一)。但是,对于私有方法,我不确定为什么它们如此重要。 例如,对于类,我们是否不能将所有实现代码都放入公共方

  • 我有一个超级班 我希望这个孩子班级 但是Xcode说 重写实例方法必须与它重写的声明一样可访问 那么,我如何覆盖超类中的公共方法是子类中的私有方法 谢谢你

  • 我有一节课: 在正常使用中,该类的行为与您预期的一样。方法和获取并设置复合列表。然而,我使用这个类作为一个对象,在使用JAX-WS构建的web服务中传递。当JAX-WS编译器看到这个类时,它会忽略和访问器,XSD中出现的唯一属性是。 在一天的大部分时间里,我的头撞在墙上,我决定尝试将私有方法的名称改为,突然间一切都如你所料。JAX-WS为属性创建了正确的模式。 似乎正在发生的事情是,JAX-WS看

  • 在 Go 语言中通过首字母大小写来控制变量、函数、方法、类型的公私有 如果首字母小写,那么代表私有,仅在当前包中可以使用 如果首字母大写,那么代表共有,其它包中也可以使用 package demo import "fmt" var num1 int = 123 // 当前包可用 var Num1 int = 123 // 其它包也可用 type person struct {

  • 我有一个关于静态方法访问的问题。我有一个类,其中有4个静态方法。如代码所示: } 我正在从下面的代码调用来自onLoadShipperDetailsListCtrl()的setSortingEnable()方法: } 因此,如果我从其他类调用setSortingEnabled()方法,我会认为它是公共的,而其他方法是私有的,但它会给我一个错误:Java . lang . nosuchmethode

  • 我有一个类,它有一个公共方法,它调用另一个私有方法。 通过调用公共方法 并将 设置为 来进行测试。 将更改为package-private并在测试中直接调用它。 然而,我不确定哪种方法更好。