Java 中私有、静态、最终、公共、抽象关键字的使用模式

2022-09-04 23:45:16

我知道除了抽象之外,所有这些都是做什么的。我目前正在用我认为的中学教育自学java(我的高中在一个糟糕的社区,所以我被骗了)......

但是,这些关键字的使用模式究竟是什么?我什么时候使用什么?我什么时候省略它们?在我的类前面放置“public”会使每个使用它的类都需要一个新文件,如果我想创建一个整体式的源文件,我可以省略它吗?

我查找的每一点信息都准确地解释了这些功能,只是没有清楚地了解我应该何时/为什么/在哪里使用它们。

提前致谢,安东尼


答案 1

来源告诉这些关键字的含义,因为何时/为什么/何地使用它们是随之而来的。例如,我的解释有“when”这个词,但它们直接来自关键字的语义。

  • private当某些内容未在给定类之外使用时,应使用
    • 对于方法和字段 - 当它们仅在同一类中使用时
    • for 类 - 仅在嵌套类上使用,当在同一类中使用时
  • protected应在以下情况下使用
    • 对于方法和字段 - 当您需要使它们仅可供子类访问时
    • for 类 - 再次仅嵌套类,可由子类访问
  • public当其他每个类都可以访问某些内容时使用

以上三个是“可见性修饰符”。当您希望将某些方法/字段/类的使用限制为一组对象,并对其他对象隐藏它们时,会使用它们。还有另一个可见性修饰符 - 默认的修饰符(当没有其他修饰符时)。当您希望类/方法/字段只能由同一包中的类访问时,将使用它。

  • static当您不需要类(即对象)的实例来使用它时使用:
    • 对于字段 - 当您想要拥有全局字段时
    • 对于方法 - 当您需要不依赖于对象状态的实用程序函数时
    • 对于嵌套类 - 当您想要在没有封闭类的实例的情况下访问它们时。
  • abstract当您不想在当前类中提供实现时:
    • on 方法 - 当子类必须提供实际的实现,但您希望在此类中调用这些方法(无论它们是如何实现的)时。
    • on 类 - 表示该类可能具有抽象方法。
  • final- 当你不想改变某些东西。
    • 上,当您只想分配一次值时。当您想要将局部变量传递给内部类时,它很有用 - 您必须将其声明为 final。
    • 在类和方法上 - 当您不希望子类能够扩展/覆盖它们时。

答案 2

对于初学者,这是我的经验法则:

  1. 公共:所有类都应该是公共的(这并不完全正确,但它非常接近)。对于方法,想想你的电视机:你期望对电视做的事情是“公开的”。
  2. 私有:实现详细信息应为私有。想想你的电视机:如果电视的同等内容应该是私有的,那么功能就是私有的,因为用户可以永久地搞砸电视,触电等。
  3. 受保护:暂时忽略此内容。
  4. 摘要:我在学习Java时读到的最好的例子就是想想“Bird”。Bird是abstact,因此会有一个“抽象”的飞行方法。个别种类的鸟类知道如何飞行(除非它们是企鹅 - 然后它们会抛出不支持的操作异常)。

我强烈建议您与使用一个整体式源文件的冲动作斗争。尽量使方法短于一个屏幕,类短于 300 行。