Avatar ·

何时在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吗? 请指教,谢