java中private,static,final,public,abstract关键字的使用模式

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

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

我查阅的每一点信息都准确地解释了这些信息的作用,但没有清楚地说明何时/为何/我应该使用它们。

提前谢谢,安东尼

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

  1. 公共:所有类都应该公开(这不是真的,但它非常接近)。 对于方法,请考虑一下您的电视机:您希望对电视所做的事情是“公开的”。
  2. 私有:实施细节应该是私有的。 想想你的电视机:如果电视的同类产品应该是私密的,那么function是私密的,因为用户可以永久地弄乱电视,触电等等。
  3. 受保护:暂时忽略这一点。
  4. 摘要:我在学习Java时读到的最好的例子就是思考“鸟”。 鸟是抽象的,因此会有一个“抽象的”飞行方法。 个别鸟类知道如何飞行(除非它们是企鹅 – 然后它们抛出UnsupportedOperationException)。

我强烈建议你努力使用一个单片源文件。 尝试保持方法短于一个屏幕,并且类别短于300行。

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

  • 当在某个类之外没有使用某些东西时,应该使用private
    • 对于方法和字段 – 当它们仅在同一个类中使用时
    • 对于类 – 仅在嵌套类上使用时,在同一个类中使用
  • 应该使用protected
    • 对于方法和字段 – 当您需要使它们仅对子类可访问时
    • 对于类 – 再次只有嵌套类,可以通过子类访问
  • 当每个其他类都可以访问某些东西时使用public

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

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

Bozho很好地介绍了关键字的用法,但我要补充一点,如果你根本没有声明一个范围,那么你的范围变成了包私有,这意味着与该类相同的包中的任何人都可以使用该类/方法。 基本上,它比private更宽松,但更不宽容,而不仅仅是protected ,因为protected允许从包外部访问。

有关’无修饰符’访问权限的信息:

我建议通过Java教程:

如果您想要更多地探索Java,还可以查看书籍问题:

privatepublicprotected都用于声明变量类的范围 。

static意味着被定义的东西是类的成员而不是作为类的实例的对象。

abstract表示该类不能直接创建,只能由子类使用。 抽象方法可以在抽象类中定义,意味着任何子类都必须定义与定义的签名匹配的方法。

final表示变量只能在创建时赋值一次。 最终的类/方法不能分别inheritance/覆盖。

远离将所有内容放在一个大文件中。 使用像Eclipse这样的IDE,它可以很容易地处理每个文件有一个类的代码。 它允许您更好地组织代码并封装代码,这样您就不会在一切都知道所有事情的情况下结束。 这将导致错误,因为它更容易意外地使用创建的东西来实现不同的目的。

为了理解这些关键字使用的时间/原因/位置,您必须掌握面向对象编程和Java的一些关键概念。 我建议研究封装和多态性 。

同样在我的头脑中,我相信’公共’是隐含的,所以它不是必需的,但它的良好做法就是把它放在那里。