关于java的函数命名

woshiyigexiaofanzi 2013-06-08 11:29:41
最近在看java的集合。发现一个问题。在java里一般“动词”都是加s的,比如extends,implementes,这符合英语第三人称动词加s的规范。Collection接口中提供的几个方法:add(),remove()等是没有加s的,但是contains()却又加了s。我有点搞不懂了,难道这个s是随便加的,当时编写API的时候,就连命名都不统一?求解!
...全文
762 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqfddqr 2013-07-01
  • 打赏
  • 举报
回复
引用 25 楼 bao110908 的回复:
1:带有判断含义的方法动词,都使用第三人称单数,或者是第三人称单数形式的动界、动宾短语,常见的有 equals, contains, exists, matches, startsWith, endsWith, containsAll 等等 2:数据类型转换方法,一般为“to + 类型”,比如 toString 等等 3:对于普通的方法,一般采用动词原形,后面可以跟名词,也可不跟,比如 add, put, set, get, parse, parseInt, 等等。
TangShi2011 2013-06-15
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
1:带有判断含义的方法动词,都使用第三人称单数,或者是第三人称单数形式的动界、动宾短语,常见的有 equals, contains, exists, matches, startsWith, endsWith, containsAll 等等 2:数据类型转换方法,一般为“to + 类型”,比如 toString 等等 3:对于普通的方法,一般采用动词原形,后面可以跟名词,也可不跟,比如 add, put, set, get, parse, parseInt, 等等。
晴空恬静 2013-06-11
  • 打赏
  • 举报
回复
好奇心好重哦,我都没有想过哦。看看命名规则吧!
小丑哥_V5 2013-06-10
  • 打赏
  • 举报
回复
呵呵,明显是想多了...毕竟不是每个人都是固定跟着标准来的
sxnbo 2013-06-10
  • 打赏
  • 举报
回复
mark 这不值深究的问题 就跟英雄大招cd时间一样 别个那么写的 你就只有这么用
louis9212 2013-06-09
  • 打赏
  • 举报
回复
加s表示是别人定义的,不加s表示是自己主动发出的。 比如 public void test() throws IOException{ ... ... throw new Exception(""); ... }
小蝸牛 2013-06-09
  • 打赏
  • 举报
回复
java是驼峰命名,C#的是K&R
辣不怕 2013-06-09
  • 打赏
  • 举报
回复
驼峰命名法,首字母小写,之后的每个单词的首字母大写,和类的写法去呗就在整个字符串的首字母。
oh_Maxy 2013-06-09
  • 打赏
  • 举报
回复
这个定义还是蛮合理的,就看咱们怎么理解了。
清蒸豆豆 2013-06-08
  • 打赏
  • 举报
回复
你的好奇心还挺好的来,没有考虑过这个问题···如果这样的话,contains还应该命名成isContains()比较合适的
  • 打赏
  • 举报
回复
去看看命名规范吧
ZHXDD 2013-06-08
  • 打赏
  • 举报
回复
真是想多了,如果真想表达的更清楚,方法名应该写成removeItemFromA
你怎么了熊吉 2013-06-08
  • 打赏
  • 举报
回复
contains()函数返回的是状态,性质类似于isXXX()这样的,英语A contains B表达的就是A包含B的状态 add(),remove()不一样,它们指示对象去完成动作,是一种祈使句 你仔细感受下,是不是这样
萧君 2013-06-08
  • 打赏
  • 举报
回复
引用 14 楼 tangtang5468 的回复:
引用 12 楼 ahtmiss2005 的回复:
是不是有强迫证啊,写个方法名都要思前想后想半天吧?
追求极致
这样活着累!
狂风之息 2013-06-08
  • 打赏
  • 举报
回复
引用 12 楼 ahtmiss2005 的回复:
是不是有强迫证啊,写个方法名都要思前想后想半天吧?
追求极致
逍遥jc 2013-06-08
  • 打赏
  • 举报
回复
其实当初只是为了简单明了而已,不必去深究,毕竟个人的习惯都不一样的。
萧君 2013-06-08
  • 打赏
  • 举报
回复
是不是有强迫证啊,写个方法名都要思前想后想半天吧?
清蒸豆豆 2013-06-08
  • 打赏
  • 举报
回复
引用 9 楼 woshiyigexiaofanzi 的回复:
[quote=引用 2 楼 mantou0611 的回复:] 你的好奇心还挺好的来,没有考虑过这个问题···如果这样的话,contains还应该命名成isContains()比较合适的
isXxx()感觉是返回对象的一个属性值,倒是很少见到用于返回值是布尔类型的函数的函数名是isXxx的形式。可能是我代码见得少的缘故。[/quote] isXxx()一般是是否的意思,是否有效,是否激活,是否存在···
woshiyigexiaofanzi 2013-06-08
  • 打赏
  • 举报
回复
引用 5 楼 u010975729 的回复:
有一些加s是表示为工具类,里面有很多可以直接使用的方法。如Collections里面就提供了对集合的操作方法,使用很方便。
这个可否说的详细一些啊?
加载更多回复(7)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧