何时在Java中使用静态方法?示例与最佳实践
大家好!我是一名Java新手开发者,一直纠结一个问题:什么时候该用静态方法,什么时候该用普通方法(实例方法)?
我知道`static`意味着方法属于类而非对象,但在实践中经常混淆。比如,我写了一个简单的计算器:
```java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public static int multiply(int a, int b) {
return a * b;
}
}
```
两个方法都能工作,但我不确定哪个是正确的。我看到在工具类(如`Math`或`Collections`)中几乎所有方法都是静态的。但在自己的项目中,我经常看到静态方法用于工厂或单例模式。
另外让我困惑的是:如果方法不使用类的字段(不访问`this`),是否就应该将其设为静态?这算强制规则吗?还有测试方面——静态方法不是更难mock吗?
请指教,谢