我正在向学生讲授Java中的方法(在他们学习对象之前),因此我将使用" public static"方法。 (这不是我的选择。教科书是如何组织的。)
我想用动词命名我的方法。
我想要显示的一种方法是getSumOfTwoInts(int,int)方法,或getMaxNumber(int,int)方法,或getAngryMessage(String)方法。
但是,我知道名为getXXX()的方法是命名访问器方法的约定(即返回某个实例变量值的方法)。如果我编写自己的方法不是访问方法,那么让它们以单词" get"?
开头是不好的方式。答案 0 :(得分:2)
Java naming conventions from Oracle声明
方法应该是动词,混合大小写,首字母小写,每个内部单词的首字母大写。
没有任何东西可以取消以get
动词开头的方法。而且,这些方法没有什么特别之处。 Javabean naming convention表示返回get
以外的值的公共无参数方法的boolean
前缀使该方法成为属性:
8.3.1:如果我们发现一对匹配的
get<PropertyName>
和set<PropertyName>
方法采用并返回相同的类型,那么我们将这些方法视为定义读取-write属性,其名称为<propertyName>
。我们将使用get<PropertyName>
方法获取属性值,使用set<PropertyName>
方法设置属性值。
如您所见,这不适用于带参数的getXXX
方法;它也不适用于static
方法,因此您的getSumOfTwoInts
和getAngryMessage
完全没问题。
答案 1 :(得分:0)
名称getXXX()
是一个访问者,但这并不意味着它必须映射到对象内部表示中的任何特定内容。
只要对象可以为其接口契约返回有意义的内容,无论这是否由成员变量支持都是无关紧要的。事实上,要求它会违反封装原则。调用方法getXXX()
最重要的是对象的规范是否说这样的方法是有意义的。
“最小意外原则”会暗示这样的方法应该在每次调用时返回相同的值,除非在对象规范的上下文中有意义的值随时间变化。