方法名称是否必须是动词?

时间:2016-03-04 23:23:11

标签: java methods

我是java编程的新手,我目前正致力于一个命令阅读程序(基本上是用户在命令中键入,我的程序会评估要做什么和做什么)。我有一个单独的类,包含我的所有命令,但它们作为方法存储,并不总是使用动词作为名称。我知道习惯上将方法存储为动词。我使用的方法是错误的,是否有更好的方法来存储我的命令?每个命令都有单独的类?调用我的一个方法的例子:

else if (command[0].equals("math")) Commands.math();

4 个答案:

答案 0 :(得分:2)

  

方法名称是否必须是动词?

就Java语言(即Java编译器)而言,没有。语言规范只要求您遵循有关使用哪些字符以及上下文唯一性的一些规则。

典型的Java样式指南也不要求方法名称为动词。但他们通常推荐这个。 (请注意,这不是自动样式检查器检查的内容,因为可靠地区分名词和动词的难度。)

  

我知道习惯上将方法存储为动词。

这是一个更好的表征。

这实际上来自面向对象设计。设计中的类映射到Java类,Java方法表示对设计类上的实例的操作。对于类使用类似名词的标识符和对方法使用类似动词的标识符是“自然的”(和习惯)。

但这不是一项要求。

在您的示例中,您可以通过使用“doMath”作为方法名称来解决这一难题。这是一个动词短语。 (“do xyz”是一种常用的约定,尽管它不能很好地“阅读”。)

但是,您似乎可以,并且可能应该避免将命令名称硬连接到方法名称中。看一下“命令”设计模式:http://www.fluffycat.com/Java-Design-Patterns/Command/

从长远来看,设计模式是您需要学习的东西,但对于初学程序员来说,它们可能太过消化了。

答案 1 :(得分:0)

为了使其更加面向对象,您可以考虑使用Abstract Class Command和separe类将其扩展为类

答案 2 :(得分:0)

在这种情况下,您应该将所有方法放在同一个类中,但除此之外,您正在正确使用方法。

我是一名Java程序员,我从未听说过动词习惯。但是,如果您想要关注它,方法名称的一些建议是doMath()calculateMath()或类似的东西。

此外,您应 NOT 按类拆分方法。通常,如果您计划实例化不同类的对象,则应该只使用多个类。将每个方法放在一个单独的类中是非常荒谬的。

答案 3 :(得分:0)

  1. 方法必须是动词吗?否。只要涉及到编译器,都没关系。

  2. 应该是动词吗?作为使程序易于理解的约定:显然,是的。

变量表示对象和数据,因此通常应使用名词。方法代表动作,因此通常应使用动词。当然也有例外,但这是正常的规则。理想情况下,变量或方法的名称应足以在类中标识其功能。