我只是在这里检查我的推理,因为我想我已经知道答案了。有人问我:无论我可能有多少个特定类别的实例,给定的方法肯定在每个对象中都具有相同的操作。那么,为什么Java开发人员为方法发明了静态修饰符呢?我们可以将其与静态变量进行对比。当然,在这里,每个对象对于给定字段都有不同的值。
我的回答是,不,在类的每个实例中,给定的方法不会具有相同的操作。例如,在类的每种实例中,设定器和盖特斯以"相同"的方式运行,但它们的输出确实取决于类的实例。
相当广泛的问题;但是这里有各种简单的事实:如静态有关"良好oo"原理的异常:
- 静态导致不同类之间的直接耦合。
- 更重要的是:有没有静态方法的多态性。和多态性是 ESSENCE oo编程!
- 它不仅会影响您的代码库;它也可以使(单位(测试(更加困难(。
换句话说:默认情况下,您努力不使用静态。在某些情况下,这是有道理的;但是您必须仔细考虑这些。
或给我个人两个分之一:如果静态是"更好的答案",每个人仍然会在帕斯卡中编码,并声称命令编程是银色软件工程的子弹。
但是要回答这里的"其他"问题:"为什么我们需要 static ,然后?
仅仅是因为有时方便且有用。当您转向Java"系统类"时;例如收集或对象,您在那里找到了合理的数量的"有用"功能。这可以维护软件质量的其他重要特性;喜欢:单个责任原则。例如,有一个一个 sort()
的中央实现;可以直接对收藏的行为进行排序。