Member-only story
HackerRank — Java Static Initializer Block
Static değişken, metod ve blok nasıl tanımlanır? Java Static Initializer Block sorusunun çözümü

HackerRank üzerindeki Java problemlerini çözüyoruz. Bu onuncu problem. Eğer diğer problem çözümlerini okumadıysanız önce onlara bakmanızı tavsiye ederim, hepsinin toplu hali:
Yazının devamını göremeyenler “bu linkten” erişebilirler.
Önce problemi anlayalım sonra da çözümüne geçelim. Problemi anlama kısmını okuduktan sonra problemi çözmeyi denemenizi sonra da buradaki çözümle karşılaştırmanızı şiddetle tavsiye ederim :)
Problemin linki 👇
Problemi anlayalım
Bu problemde static kavramı üzerine duracağız. Static değişkenler yazabildiğimiz gibi static metodlar ve direkt static blok da oluşturabiliriz.
Static yapılar(değişkenler ve blok) sınıfın nesnesinden bağımsız program çalıştığında bir defa çalışırlar/oluşturulurlar. Genelde değişmeyen final değerler static değişken olarak tanımlanır. Static-final değişken tanımı aşağıdaki gibi yapılır, final değişkenler atama yapıldıktan sonra değiştirilemezler:
public static final int CAPACITY = 10;
Final olmadan static değişken de tanımlayabiliriz, final olmadığı için sonradan da değiştirebiliriz:
public static int capacity = 10;
Static metod tanımını aşağıdaki gibi yapabiliriz. Static metodlar sınıfın nesnesinden bağımsız da çağrılabilir.
private static void initializeClassVariable() {
// kod
}
Değişken ve metodun yanında static blok da oluşturabiliriz. Static bloklar bulunduğu sınıf için bir defa çağrılır…