我知道除了抽象之外所有这些都做了什么。我目前正在通过我认为是中学水平的教育自学java(我的高中在一个糟糕的社区,所以我被淘汰了)......
但是这些关键字的使用模式到底是什么?我什么时候用什么?我什么时候省略它们?将“public”放在我的类前面会使每个使用它的类都需要一个新文件,如果我想创建一个单一的源文件,我可以省略它吗?
我查找的每一点信息都准确地解释了它们的作用,只是没有清楚地说明我应该何时/为什么/在哪里使用它们。
在此先感谢,安东尼
来源告诉这些关键字的含义是什么,因为它们的使用时间/原因/位置由此而来。例如,我的解释有“何时”这个词,但它们直接来自关键字的语义。
private
应该在给定类之外不使用某些东西时使用
protected
应该在什么时候使用
public
当其他所有类都可以访问某些东西时使用以上三个是“可见性修饰符”。当您想将某些方法/字段/类的使用限制为一组对象并将它们隐藏在其他对象中时,可以使用它们。还有另一个可见性修饰符 - 默认值(当没有其他修饰符时)。当您希望您的类/方法/字段只能被同一包中的类访问时使用它。
static
当您不需要类的实例(即对象)来使用它时使用它:
abstract
当您不想在当前类中提供实现时:
final
- 当你不想改变的时候。
对于初学者,这是我的经验法则:
我强烈建议您抵制使用单一源文件的冲动。尽量让方法短于一屏,类短于 300 行。
Bozho 已经很好地涵盖了关键字的用途,但我要补充一点,如果您根本不声明作用域,您的作用域将变为包私有,这意味着与该类位于同一包中的任何人都可以使用该类/方法. 基本上,它比 更宽松private
,但比 just 更宽松protected
,因为它protected
允许从包外部访问。
有关此处“无修饰符”访问的信息:
我建议阅读 Java 教程:
如果您想探索更多 Java,还可以查看书中的问题:
private
,public
并且protected
都用于声明变量的类的作用域。
static
意味着被定义的事物是类的成员,而不是类实例的对象。
abstract
表示类不能直接创建,只能被子类使用。抽象方法可以在抽象类中定义,这意味着任何子类都必须定义与定义的签名匹配的方法。
final
意味着变量只能在创建时被分配一次。最终类/方法不能分别被继承/覆盖。
不要将所有内容都放在一个大文件中。使用像 Eclipse 这样的 IDE,它将使处理每个文件具有一个类的代码变得容易。它使您可以更好地组织代码和封装代码,这样您就不会陷入无所不知的境地。这将导致错误,因为很容易意外地使用为不同目的而创建的东西。
private
方法是不能被引入范围之外的任何其他对象访问的方法。
方法static
是属于类而不是类的实例的方法。类的每个实例都可以访问该方法,但实例中定义的方法只能由类的该成员访问。
该final
关键字在多个上下文中用于定义只能分配一次的实体。
成员对public
所有其他类可见。这意味着任何其他类都可以访问public
字段或方法。
方法没有主体,abstract
只有方法签名