Java Static Metot ve Propertyler
Java sever yazılımcılara yeniden selamlar olsun :)
Önceki Java makalemizde dinamik sınıflarda yapıcı metotları öğrenmiş ve instance ile sınıf property'lerine parametreli metotlardaki gibi değerler atamıştık.Bu makalemizde ise static (statik-durağan) property ve metotları öğreneceğiz.
Biraz static sınıflardan bahsedelim...
Static sınıflar;
Şimdi NetBeans uygulamamızı açalım ve yeni bir masaüstü projesi oluşturduktan sonra projemize "Uçak" isimli bir sınıf oluşturalım:
Dikkat edersek uçak sınıfımızın önünde static sözcüğünü kullanmadık bunun nedeni C# dilinden farklı olarak Java'da bir sınıf static olarak tanımlanmasa bile içeriğindeki üyelerin static olarak belirtilmesi yeterlidir.Şimdi ise sınıfımıza ait property'lerimizi yazalım:
Görüldüğü gibi property'ler de static olarak tanımlandı,son olarak metotlarımızı yazalım ve metotlarımızda static olarak tanımlanacak:
Static bir sınıfın tüm üyeleri static olmak zorundadır demiştik,kurala uyarak örnek sınıfımızı oluşturduk ve şimdi sınıfımızı kullanmaya geldik.
Projemize JFrame ekliyor ve bir de JButton ekleyin action on performed (diğer adıyla click eventi) metoduna
geçerek sınıfımıza ulaşıyoruz:
Static yazılmış bir sınıfa ulaşmak için sınıfın adını yazar ve nokta işareti ile sınıfa ait property ve metotlara kolaylık ulaşabiliyor,tıpkı new instance almış gibi değerleri kullanabiliyoruz.
Static sınıf kullanmak aslında ne iyi ne de kötü bir kodlamadır diyebiliriz,iyi olsaydı bu kadar basit bir kullanımı sürekli kullanır ancak performans sorunlarıyla boğuşur,kötü olsaydı böyle bir kavram olmaz ve nimetlerinden faydalanamazdık.
Bir sınıfı static ya da dinamik olarak kullanıp kullanmayacağınız hakkında şöyle bir tüyo vereyim; veritabanı işlemleri,
dosya oluşturma,veri işleme,resim boyutlandırma gibi kabaca fazla bellek kullanılacak durumlarda dinamik sınıfları
ve metotları kullanmanızı öneririm.
Metin işlemleri,kriptolama,küçük hesaplamalar gibi konularda ise static sınıfları kullanabilirsiniz çünkü bu gibi ufak işlemler fazla bellek kullanmazlar ve instance almak gibi ek kod yazımı gereği duymazlar.
Static sınıfların property'leri ile ilgili bilmemiz gereken bir nokta ise,aldığı değerler yeniden bir başka yerde yeniden yazılana kadar bellekte sabit kalacaktır.Örneğin; Ucak sınıfının Marka property'sini yeniden kullanmak istersek yine aynı şekilde sınıfı çağırır ve "Boeing" olan değeri "Airbus" yaptığımızda bellekteki yeni değer "Airbus" olarak kalacak ancak Model property'sine dokunmazsak "787-Dreamliner" olarak kalmaya devam edecektir.Dolayısıyla static sınıfların property'lerine değer atama konusunda dikkatli olmamızda fayda var.
Java Static Class konusu ile ilgili makalemizin sonuna gelmiş bulunuyoruz,bir sonraki makalemizde görüşmek üzere hoşçakalın :)
Önceki Java makalemizde dinamik sınıflarda yapıcı metotları öğrenmiş ve instance ile sınıf property'lerine parametreli metotlardaki gibi değerler atamıştık.Bu makalemizde ise static (statik-durağan) property ve metotları öğreneceğiz.
Biraz static sınıflardan bahsedelim...
Static sınıflar;
- Sınıfın oluşturulma esnasında isimden önce "static" sözcüğünü yazımını gerektirmez.
- Bu tip sınıflar içerisinde üyeler (property,metot) static olarak kullanılacaksa static olarak tanımlanmak zorundadırlar.
- İçerisinde constructor (yapıcı) ve destructor (yıkıcı) metotlar tanımlanamaz çünkü bu metotlar dinamik metotlardır.
- Static sınıfı kullanabilmek için dinamik sınıflardaki gibi new sözcüğüyle instance alınması gerekmez,bunun yerine sınıfın adını yazmak yeterlidir.
- Static sınıflar ileride öğreneceğimiz inheritance (kalıtım) olarak bilinen nesne yönelimli programlama tekniğiyle uyumsuzdur çünkü en üst sınıf (super class) nesnesi varsayılır.
Şimdi NetBeans uygulamamızı açalım ve yeni bir masaüstü projesi oluşturduktan sonra projemize "Uçak" isimli bir sınıf oluşturalım:
Dikkat edersek uçak sınıfımızın önünde static sözcüğünü kullanmadık bunun nedeni C# dilinden farklı olarak Java'da bir sınıf static olarak tanımlanmasa bile içeriğindeki üyelerin static olarak belirtilmesi yeterlidir.Şimdi ise sınıfımıza ait property'lerimizi yazalım:
Görüldüğü gibi property'ler de static olarak tanımlandı,son olarak metotlarımızı yazalım ve metotlarımızda static olarak tanımlanacak:
Static bir sınıfın tüm üyeleri static olmak zorundadır demiştik,kurala uyarak örnek sınıfımızı oluşturduk ve şimdi sınıfımızı kullanmaya geldik.
Projemize JFrame ekliyor ve bir de JButton ekleyin action on performed (diğer adıyla click eventi) metoduna
geçerek sınıfımıza ulaşıyoruz:
Static yazılmış bir sınıfa ulaşmak için sınıfın adını yazar ve nokta işareti ile sınıfa ait property ve metotlara kolaylık ulaşabiliyor,tıpkı new instance almış gibi değerleri kullanabiliyoruz.
Static sınıf kullanmak aslında ne iyi ne de kötü bir kodlamadır diyebiliriz,iyi olsaydı bu kadar basit bir kullanımı sürekli kullanır ancak performans sorunlarıyla boğuşur,kötü olsaydı böyle bir kavram olmaz ve nimetlerinden faydalanamazdık.
Bir sınıfı static ya da dinamik olarak kullanıp kullanmayacağınız hakkında şöyle bir tüyo vereyim; veritabanı işlemleri,
dosya oluşturma,veri işleme,resim boyutlandırma gibi kabaca fazla bellek kullanılacak durumlarda dinamik sınıfları
ve metotları kullanmanızı öneririm.
Metin işlemleri,kriptolama,küçük hesaplamalar gibi konularda ise static sınıfları kullanabilirsiniz çünkü bu gibi ufak işlemler fazla bellek kullanmazlar ve instance almak gibi ek kod yazımı gereği duymazlar.
Static sınıfların property'leri ile ilgili bilmemiz gereken bir nokta ise,aldığı değerler yeniden bir başka yerde yeniden yazılana kadar bellekte sabit kalacaktır.Örneğin; Ucak sınıfının Marka property'sini yeniden kullanmak istersek yine aynı şekilde sınıfı çağırır ve "Boeing" olan değeri "Airbus" yaptığımızda bellekteki yeni değer "Airbus" olarak kalacak ancak Model property'sine dokunmazsak "787-Dreamliner" olarak kalmaya devam edecektir.Dolayısıyla static sınıfların property'lerine değer atama konusunda dikkatli olmamızda fayda var.
Java Static Class konusu ile ilgili makalemizin sonuna gelmiş bulunuyoruz,bir sonraki makalemizde görüşmek üzere hoşçakalın :)