Initialize Block
1 min readDec 21, 2019
Initialize block için şunları bilmemiz gerekiyor;
- Javada 2 tip initialize block vardır.
- static initialize block class yüklendiğinde 1 kez çalışır.
- instance initialize block ilgili obje her oluştuğunda çalışır.
Örnek kod olarak;
- Eğer 1 den fazla static initialize block varsa, sırayla çalışacaktır.
- Eğer 1 den fazla instance initialize block varsa, sırayla çalışacaktır.
- Programı run ettiğimizde, ilk class yükleneceği için sırayla,
- static initialize block1
- static initialize block2
- Çalışacaktır, daha sonra classın ilgili objesi oluşacağı için sırasıyla,
- initialize block1
- initialize block2
- constructor yazacaktır.
- Aynı classın tekrar objesini oluşturduğumuzda, static initialize block’lar çalışmayacaktır. O yüzden sırasıyla;
- initialize block1
- initialize block2
- constructor yazacaktır.
Başka bir örnek ;
- Bu örnekte unutmamamız gereken şey, extends söz konusu ise ilk SuperClass çalışır.
- Programı run ettiğimizde, ilk static initialize block çalışır demiştik ve extends söz konusu olduğu için ilk SuperClass’ın static initialize block’u çalışır.
- Animal static initialize block
- Dog static initialize block
- Yazacaktır. Instance initalize block’lar daha yazmadı, çünkü ilgili objeyi üretmedik.
- İlgili objeyi ürettiğimizde ( Dog dog = new Dog(); ),
- Animal initialize block
- Animal constructor
- Dog initialize block
- Dog constructor
- Daha sonra ikinci objeyi üretiyoruz.
- Animal initialize block
- Animal constructor
- Dog initialize block
- Dog constructor
Github : InitializeBlock