在 Java 中,长度何时用作方法,何时用作属性?[已关闭]

2022-09-04 21:40:13

我见过一些遗留代码,它们在某些对象上使用属性,而其他使用方法。目前,我正在使用来自包的a,我发现它具有获取元素数量的方法。lengthlength()NodeListorg.w3c.domgetLength()

我的问题是,作为Java开发人员,我如何知道如何确定何时使用,,,?显然,这取决于对象类型,API可用于读取...但关键是Java开发如何选择哪些在他们的类中实现。lengthlength()size()getLength()

注意:在问题“何时使用 .length vs .length() ”Makoto“答案中,表示这是数组上的一个属性。这不是方法调用,而是对 String 的方法调用。但是,原因何在呢?为什么不使用一种方法或一个属性来维护所有API的一致性。.lengthlength()


答案 1

Java开发人员如何选择在他们的类中实现哪些[方法]?

当您实现包含其他对象的类时,它几乎总是 size(),即接口提供的方法。Collection

就其他选择而言,您应该避免公开成员变量,甚至是最终成员变量,因为它们无法通过接口访问。Java因为一些JVM的诡计而逃脱了数组的惩罚,但你不能做同样的事情。因此,应该退出:它保留在Java中,因为不可能改变从第一天起就存在于语言中的基本内容,但这绝对不是在设计新类时应该考虑的事情。length

当您实现自己的具有长度的类型(例如,矩形或线段)时,由于 Java Bean 命名约定,您应该更喜欢这样做。getLength()length()


答案 2

显然,这取决于对象类型,API可用于读取...

您已经自己回答了您的问题:查看您正在使用的任何类的API文档。

但关键是Java开发如何选择哪些在他们的类中实现。

Java标准库中的类是由不同的人开发了很长时间,他们并不总是对方法的名称做出相同的选择,所以存在不一致,不幸的是,你只需要忍受这一点。