Bölüm 4 - Objects and Classes 5
Static Fields and Methods
Static Fields
Eğer ki bir field'ı `static` olarak tanımlarsak artık object ile mevcut olmayacaktır sadece bir tane kopyası tek olur bu static field'ın. Static fieldları class'a ait field'lar olarak düşünebiliriz, yani bireysel olarak bir object'e bağlı değillerdir class'a aittirler.
class Employee {
private static int nextId = 1;
private int id;
}
Her Employee object'i artık bir id field'ına sahip olacaktır ama sadece bir tane nextId field'ı olur ve diğer bütün instances'larda bunu ortak olarak kullanırlar.
Bazı OOP dillerinde, static field'ları class fields adlandırması olarak görebiliriz.
Static Constants
Bu static constants fieldları çok yaygın kullanılırlar örneğin Math classımızdda PI static constant'ına bakalım.
public class Math {
...
public static final double PI = 3.14159265358979323846;
...
}
Eğer ki biz burada static keywordünü kaldırırsak artık PI sayısı Math classına değil her Math instancına sahip olacaktı yani artık instance field olacaktı.
Static Methods
Static methodlar da object'ler üzerinde işlem yapmayan methodlardır. Örneğin Math classımızda ki pow methoduna bakalım.
Math.pow(x,a);
x^a (x üssü a) hesaplamasını yapar. Herhangi bir Math object üzerinde işlem yapmaz diğer bir değişle herhangi bir implicit parametreye sahip değildir. Static methodları this parametresine sahip olmayan methodlar olarak düşünebiliriz.
! Static methodlardan, instance fieldlarına erişim olamaz çünkü bunlar instance yani bir object'e aittirler class'a değil.