如果没有非静态类成员,你是否必须使类静态?

时间:2017-05-15 19:33:25

标签: java variables methods static instance

如果类中没有任何非静态类成员,那么将类中的所有方法设置为静态是一种好习惯吗? 就像某些经理没有自己的实例变量一样。

1 个答案:

答案 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。在这种情况下,方法必须是非静态的,并且必须实例化一个实例才能将它传递给将要使用它的任何实例。

界面逻辑一直在我的脑海里(如教授所教导的):方形钉,圆孔。如果你想穿过圆孔,你必须是圆的。如果你不存在,你就不会圆,也不能通过这个洞。