除了抽象之外,我知道所有这些所做的事情。我目前正在用自己认为的中学教育(我的高中是在一个糟糕的社区,因此我被选中)教自己java ...
但这些关键字的使用模式究竟是什么?我什么时候用?我什么时候省略它们?将'public'放在我的类前面使得每个使用它的类都需要一个新文件,如果我想创建一个单一的源文件,我可以省略它吗?
我查阅的每一点信息都准确地解释了这些信息的作用,但没有清楚地说明何时/为何/我应该使用它们。
提前致谢, 安东尼
答案 0 :(得分:36)
来源告诉我们这些关键字的含义是什么,因为它们的使用时间/原因/地点就是这样。例如,我的解释有“when”这个词,但它们直接来自关键词的语义。
private
protected
时应该使用
public
用于每个其他类都可以访问的内容时以上三个是“能见度修饰符”。当您想要将某些方法/字段/类的使用限制为一组对象,并将它们与其他对象隐藏时,可以使用它们。还有另一个可见性修饰符 - 默认修饰符(当没有其他可见修饰符时)。当您希望只能从同一个包中访问类/方法/字段时,可以使用它。
static
:
abstract
当您不想在当前类中提供实现时:
final
- 当你不想改变什么时。
答案 1 :(得分:10)
对于初学者,以下是我的经验法则:
我强烈建议你反对使用一个单片源文件的冲动。尽量保持方法短于一个屏幕,并且类别短于300行。
答案 2 :(得分:6)
Bozho很好地介绍了这些关键字的用法,但我要补充一点,如果你根本没有声明一个范围,你的范围就变成了包私有,这意味着与该类相同的包中的任何人都可以使用类/方法。基本上,它比private
更宽松,但更不宽容,而只是protected
,因为protected
允许从包外部进行访问。
有关'无修饰符'访问权限的信息:
我建议您阅读Java教程:
如果你想更多地探索Java,还要看一下书中的问题:
答案 3 :(得分:2)
private
,public
和protected
都用于声明变量类的Scope。
static
表示正在定义的事物是类的成员,而不是作为类实例的对象。
abstract
表示该类无法直接创建,只能由子类使用。抽象方法可以在抽象类中定义,意味着任何子类都必须定义与定义的签名匹配的方法。
final
表示变量只能在创建时分配一次变量。最终的类/方法不能分别继承/覆盖。
远离将所有内容放在一个大文件中。使用像Eclipse这样的IDE,它可以很容易地处理每个文件有一个类的代码。它允许您更好地组织代码并封装代码,这样您就不会在一切都知道所有事情的情况下结束。这将导致错误,因为它更容易意外地使用创建的东西来实现不同的目的。
答案 4 :(得分:1)
private
方法是一种方法,引入该方法范围之外的任何其他对象都无法访问。
static
方法是属于类而不是类实例的方法。该方法可供类的每个实例访问,但是实例中定义的方法只能由该类的成员访问。
final
关键字在多个上下文中用于定义只能分配一次的实体。
public
成员对所有其他类可见。这意味着任何其他类都可以访问public
字段或方法。
abstract
方法没有主体,它们仅具有方法签名。如果常规类扩展了抽象类,则该类必须必须实现抽象父类的所有抽象方法,或者必须也被宣布为抽象
答案 5 :(得分:0)
为了理解这些关键字使用的时间/原因/位置,您必须掌握面向对象编程和Java的一些关键概念。我建议调查Encapsulation和Polymorphism。
同样在我的头脑中,我相信'公开'是隐含的,所以它不是必需的,但是它的良好做法就是把它放在那里。