java中的getXXX()方法命名约定是否仅适用于访问器方法?

java中的getXXX()方法命名约定是否仅适用于访问器方法?,java,naming-conventions,Java,Naming Conventions,我在教学生Java中的方法(在他们学习对象之前),所以我将介绍使用“公共静态”方法的方法。(这不是我的选择,而是教科书的组织方式) 我想用动词来命名我的方法 我想展示的一个方法是getSumOfTwoInts(int,int)方法,或者getMaxNumber(int,int)方法,或者getAngryMessage(String)方法 但是,我知道名为getXXX()的方法是命名访问器方法(即返回某个实例变量值的方法)的约定。如果我自己编写的方法不是访问器方法,那么让它们以“get”开头是否不

我在教学生Java中的方法(在他们学习对象之前),所以我将介绍使用“公共静态”方法的方法。(这不是我的选择,而是教科书的组织方式)

我想用动词来命名我的方法

我想展示的一个方法是getSumOfTwoInts(int,int)方法,或者getMaxNumber(int,int)方法,或者getAngryMessage(String)方法

但是,我知道名为getXXX()的方法是命名访问器方法(即返回某个实例变量值的方法)的约定。如果我自己编写的方法不是访问器方法,那么让它们以“get”开头是否不好

方法应该是动词,混合大小写,第一个字母小写,每个内部单词的第一个字母大写

没有什么可以取消以
get
动词开头的方法的资格。此外,这些方法也没有什么特别之处。表示公共无参数方法上的
get
前缀返回的值不是
boolean
使该方法成为属性:

8.3.1:如果我们发现一对匹配的
get
set
方法采用并返回相同的类型,那么我们将这些方法视为定义一个读写属性,其名称为
。我们将使用
get
方法获取属性值,使用
set
方法设置属性值

如您所见,这不适用于采用参数的
getXXX
方法;它也不适用于
static
方法,因此您的
getSumOfTwoInts
getAngryMessage
非常好。

名称
getXXX()
是一个访问器,但这并不意味着它必须映射到对象内部表示中的任何特定内容

只要对象可以为其接口契约返回有意义的内容,那么是否由成员变量支持就无关紧要了。事实上,要求这样做违反了封装原则。调用方法
getXXX()
最重要的是对象的规范是否说明这样的方法有意义


“最小意外原则”将暗示这样一个方法可能在每次调用时都返回相同的值,除非在对象规范的上下文中,该值随时间变化是有意义的

为什么不省略
get
maxNumber(int,int)
同样具有描述性。@Andrew Li,让所有方法都以动词开头不合适吗?不管怎样,我喜欢在那里有一个动词,因为它强调了我们想要完成的方法/做/一些任务的想法。此外,“get”还有助于方法返回某些内容。没有返回值的方法,我可能会使用“display”或“print”作为动词。对于执行计算的函数,我通常使用
calcWhatever
computewhatch
。其他动作通常有更多的描述性动词。@Hulk。。所以可能是“computeMaxNumber()”。。“supplyAngryMessage()”、“computeSumOfTwoInts()”?不,只是
maxNumber
angryMessage
sumOfTwoInts
。我一直都是这样做的,实际上不需要动词。所以,我的问题是静态方法,而不是实例方法。那么您认为getXXX()即使不是实例方法也可以吗?