我只是在这里检查我的推理,因为我认为我已经知道了答案。有人问我:无论我有多少个特定类的实例,给定的方法肯定会在每个对象中都有相同的操作。那么为什么Java开发人员为方法发明了静态修饰符呢?我们可以将它与静态变量进行对比。当然,在这里,每个对象对于给定的字段可以具有不同的值。
我的回答是,不,给定的方法在每个类的实例中都不会有相同的操作。例如,setter和getter在"相同的"类的每个实例中的方式,但它们的输出确实取决于类的实例。
答案 0 :(得分:6)
相当广泛的问题;但是这里有各种简单的事实: 因为静态被认为是关于“好的OO”原则的异常:
换句话说:默认情况下,您努力不使用静态。有些情况下有意义;但你必须仔细考虑那些。
或者,给我的个人两分:如果静态将是“更好的答案”,每个人仍然会在Pascal中编码并声称命令式编程是银软件工程的子弹。
但要在这里回答“其他”问题:“为什么我们需要静态呢?”
只是因为它有时候方便有用。当你转向java“系统类”;例如Collections或Objects,您会在那里找到合理的数量的“有用”功能。这样就可以维护其他软件质量的重要属性;喜欢:单一责任原则。例如,sort()
的一个中央实现是有道理的;而不是直接对集合上的“附加”“可以排序”行为。