以Java标准库为例,为什么不叫做Object.equal而是Object.equals?为什么用单数形式的Object.clone而不是Object.clones?
为什么我看到几乎所有人在读取和设置对象属性时都使用getXXX和setXXX,而不是gets或sets?
以Java标准库为例,为什么不叫做Object.equal而是Object.equals?为什么用单数形式的Object.clone而不是Object.clones?
为什么我看到几乎所有人在读取和设置对象属性时都使用getXXX和setXXX,而不是gets或sets?
equals
是“equal”的第三人称形式(可能是疑问形式——在支持非字母数字字符的方法名中通常称为equals?
),而clone
是“clone”的第二人称命令形式(你正在命令对象:“克隆自己!”)。equals
、contains
、hasXXX
...),使用命令动词来命名让对象执行某些任务的方法(例如:clone
、add
、show
... 这些方法往往不返回任何值),以及使用名词来查询关于对象状态的信息而不引用任何外部内容的方法(例如:length
、intValue
、keys
)。请注意,这些名词可以是单数或复数,具体取决于方法返回的内容:如果只返回一个对象,则为单数(如length
),如果返回列表/映射/其他容器,则为复数(如keys
)。