【问题标题】:what is the use of having public methods when the class is having a default access modifier?当类具有默认访问修饰符时,拥有公共方法有什么用?
【发布时间】:2011-01-04 05:12:50
【问题描述】:

至于我的观察,当类本身具有默认访问修饰符时,在其中包含公共方法有什么用。 java 编译器可能已经停止在默认类中使用公共方法。有什么理由吗?

【问题讨论】:

    标签: java


    【解决方案1】:

    它是安全性和可用性的完美结合。

    如果我希望类具有包访问权限(以便其他包无法使用它或更好地更改代码)并将方法标记为公共,我会将其标记为具有默认访问权限,我正在使该方法可访问到所有其他类,无论它们属于哪个包。

    这有什么帮助?一个足够安全的类,可以执行所有复杂的代码实现,并且足够可用,可以将输出提供给想要使用它的用户。

    任何人都可以使用它吗?那么你编写代码来帮助他们通过创建一个扩展这个默认类的公共类来使用它。您在任何包中实例化这个公共子类(当然是在导入之后),并且所有方法都标记为公共。

    你有一个类可以发挥你的魔力,每个人都可以使用它,而无需向其他人暗示你是如何完成它的!

    【讨论】:

      【解决方案2】:

      非公共类可能实现公共接口。这意味着包外的类无法创建此类的实例或创建该类型的引用,但如果传递了实例,它们仍然能够调用其上的方法。

      例如,公共工厂类可能会在其包中创建非公共类的实例并将其返回。

      【讨论】:

      • 即使是非公共接口也有公共方法。
      【解决方案3】:

      一个原因:如果您的类实现了某个接口(或使用抽象公共方法扩展了某个抽象类),那么您可能不会降低这些实现方法的可见性。

      【讨论】:

      • 公共子类也将继承公共方法。
      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多