Çok yaygın bir başlangıç hatası, bir sınıf özelliğini "statically" o sınıfın bir örneğini oluşturmadan kullanmaya çalışmanızdır. Bu sizi bahsedilen hata mesajıyla baş başa bırakır:
Statik olmayan yöntemi statik yapabilir ya da özelliklerini kullanmak için o sınıfın bir örneğini oluşturabilirsiniz.
Neden? Ben çözüm istemiyorum. Bunun arkasındaki nedenin ne olduğunu bilmekten minnettar olurum. En temel sebep!
private java.util.List<String> someMethod(){
/* Some Code */
return someList;
}
public static void main(String[] strArgs){
// The following statement causes the error. You know why..
java.util.List<String> someList = someMethod();
}
Çağırmaya çalıştığınız yöntem örnek düzeyinde bir yöntemdir; bir örneğiniz yoktur.
"statik" yöntemler sınıfa aittir, "statik" olmayan yöntemler ise sınıfın örneklerine aittir.
Statik bir yöntem bir eylemi bir nesne türüyle ilişkilendirirken, statik olmayan yöntem bir eylemi bu nesne türünün bir örneğiyle ilişkilendirir. Tipik olarak, örnekle ilgili bir şey yapan bir yöntemdir.
Ex:
Car sınıfı, belirli bir arabanın yıkanmasını gösteren bir yıkama yöntemine sahip olabilir, oysa statik bir yöntem araba türüne uygulanır.