如果类中没有任何非静态类成员,那么将类中的所有方法设置为静态是一种好习惯吗? 就像某些经理没有自己的实例变量一样。
答案 0 :(得分:0)
如果类永远不会有实例,那么所有方法都应该是静态的,这是调用它们的唯一方法(你不能myInst.myFunc()
因为myInst
不能存在)。
这可能是相关的:Static Classes In Java
Math
示例是一个很好的例子,必须要做的事情会让人感到困惑
Math myCalculator = new Math()
myCalculator.multiply(x,y);
除非myCalculator
可以有不同的PI,E等定义
简而言之,是的,没有非静态成员的类应该只有静态方法
编辑:安迪·托马斯提出了一个很好的观点
您的Math
可能会实现Multiplies
接口,因为它可以增加两个东西。与此同时,我的MultiplierAndAdder
课程(我知道这是一个糟糕的课程,但是对于这个例子而言)也实现了Multiplies
。在这种情况下,方法必须是非静态的,并且必须实例化一个实例才能将它传递给将要使用它的任何实例。
界面逻辑一直在我的脑海里(如教授所教导的):方形钉,圆孔。如果你想穿过圆孔,你必须是圆的。如果你不存在,你就不会圆,也不能通过这个洞。