Pratik bir kural: kendinize "Henüz herhangi bir nesne oluşturulmamış olsa bile bu yöntemi çağırmak anlamlı mı?" Eğer öyleyse, kesinlikle statik olmalıdır.
Yani bir sınıfta Car
bir yönteminiz olabilir:
double convertMpgToKpl(double mpg)
... bu statik olurdu, çünkü kimse 35mpg'nin neye dönüştüğünü bilmek isteyebilir, hiç kimse bir tane inşa etmese bile Car
. Ancak bu yöntem (belirli bir etkinliğin verimliliğini ayarlar Car
):
void setMileage(double mpg)
... herhangi bir Car
inşa edilmeden önce yöntemi çağırmak akıl almaz olduğu için statik olamaz .
(Bu arada, tersi her zaman doğru değildir: bazen iki Car
nesne içeren bir yönteminiz olabilir ve yine de statik olmasını isteyebilirsiniz.
Car theMoreEfficientOf( Car c1, Car c2 )
Bu, statik olmayan bir sürüme dönüştürülebilse de, bazıları Car
daha önemli olan "ayrıcalıklı" bir seçim olmadığından, çağıranı, Car
çağıracağınız nesne olarak birini seçmeye zorlamamanız gerektiğini iddia eder . yöntem. Bu durum, tüm statik yöntemlerin oldukça küçük bir kısmını oluşturuyor.)