但是,这些关键词的使用模式是什么?我何时该使用哪个关键词?我何时可以省略它们?在我的类前面添加“public”会使每个使用它的类都需要一个新文件,如果我想创建一个单一的源文件,我可以省略它吗?
我查找的每一个信息,都能解释这些关键词究竟是做什么用的,但却没有清晰地阐述我应该在什么情况下、为什么以及在何处使用它们。
提前感谢您, 安东尼
private
应该只用于在给定类之外不使用某些内容的情况下:protected
应该在需要使其可由子类访问时使用:public
用于其他任何类都可以访问的内容。以上三个是“可见性修饰符”。 当您想将某些方法/字段/类的使用限制为对象组时,并从其他对象中隐藏它们时,它们就会使用。 还有另一个可见性修饰符-默认值(当没有其他修饰符时)。 当您希望您的类/方法/字段仅对来自相同软件包的类可访问时,就会使用它。
static
用于不需要某个类(即对象)的实例来使用它的情况:abstract
用于当前类中不想提供实现的情况:final
用于您不希望更改的内容。对于初学者,这里是我的经验法则:
强烈建议您抵制使用单一的巨大源代码文件的冲动。尽量使方法短于一个屏幕,类短于300行。
Bozho已经很好地介绍了关键字的用途,但我要补充一点:如果您根本没有声明作用域,那么您的作用域就变成了包私有(package-private),这意味着与类在同一软件包中的任何人都可以使用该类/方法。基本上,它比private
更为宽松,但比protected
更为严格,因为protected
允许从软件包外部访问。
关于 'no modifier' 访问权限的信息请参考此处:
我建议通过Java教程进行学习:
如果您想进一步了解Java,也可以查看书籍相关问题:
private
、public
和 protected
都用于声明类变量的作用域。
static
表示被定义的东西是类的成员,而不是类的实例对象。
abstract
表示该类不能直接创建,只能由子类使用。抽象方法可以在抽象类中定义,并表示任何子类必须定义一个与定义签名相匹配的方法。
final
表示变量只能在创建时被赋值一次。一个 final 类/方法不能被继承/覆盖。
避免将所有内容放在一个大文件中。使用像 Eclipse 这样的 IDE,它会使得每个文件都只有一个类的代码易于处理。这样可以更好地组织代码并封装代码,避免出现所有内容都知道其他内容的情况。这将导致错误,因为很容易意外地使用为执行不同目的而创建的代码。
一个 private
方法是一种不能被引入范围之外的任何其他对象访问的方法。
static
方法是属于类而不是类实例的方法。该方法可访问类的每个实例,但在实例中定义的方法只能被该类的成员访问。
final
关键字在多种情况下用于定义只能分配一次的实体。
public
成员对所有其他类都是可见的。这意味着任何其他类都可以访问 public
字段或方法。
abstract
方法没有具体内容,只有方法签名。如果一个普通类扩展了一个抽象类,则该类必须实现抽象父类的所有抽象方法,否则它也必须声明为抽象。