YazılımMimarı | 28 Nisan 2012 11:50 | Java Override ve InnerClass Override [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
Bazılarınıza çok basit gelebilir, fakat bugün dahili sınıflarla (inner class) uğraşırken dahili sınıflarda nasıl override yapıldığını öğrendim. Java 1.5 ile gelen bu özellik gerçekten hoşuma gitti ve bir blog yazısıyla bunu anlatmak istedim. Başlangıç kısmı olarak java da bir Ezme (Override) örneği yazmaya çalışacağım ve ardında da dahili sınıflarda bu işlemin nasıl olduğunu yine örnek kodla anlatmaya çalışacağım. Java da Ezme (Override) işlemi, ana sınıftan türetilen sınıflara gelen değerleri değiştirmek olarak tanımlanabilir. Örnek bir kod ile daha iyi anlaşılacağını düşünerekten hemen örneğe geçiyorum; PHP- Kodu: //ana sınıfımız olarak tanımladığımız sınıf class EzilecekSinif { public void YazilimciCalis(){ System.out.println("Yazılımcı c# kodu geliştiriyor."); } } //türeyen sınıfımız class SinifEzme extends EzilecekSinif{ public void YazilimciCalis(){ System.out.println("Yazılımcı Java kodu geliştiriyor."); } } public class YazilimTest{ public static void main(String ern[]){ EzilecekSinif ES = new EzilecekSinif(); ES.YazilimciCalis(); EzilecekSinif YC = new SinifEzme(); YC.YazilimciCalis(); } }
Gördüğünüz gibi türeyen sınıfta metot ismi aynı dikkat edilmesi gereken yerlerden birisi burasıdır, aklıma gelen bir başka dikkat edilmesi gereken yer ise sınıflara bir argument listesi tanımlıyorsak türeyen sınıftada aynı şekilde olmalıdır. Kodumuzu bu şekilde yazdığımızda çıktısı şu şekilde olacaktır. PHP- Kodu: Yazılımcı c# kodu geliştiriyor. Yazılımcı Java kodu geliştiriyor.
Aynı örneği dahili sınıfla yapmaya çalıştığımızda ise şöyle olacaktır; PHP- Kodu: class EzilecekSinif { public void YazilimciCalis(){ System.out.println("Yazılımcı c# kodu geliştiriyor."); } } public class YazilimTest{ public static void main(String ern[]){ EzilecekSinif EY = new EzilecekSinif(); EY.YazilimciCalis(); class SinifEzme extends EzilecekSinif{ @Override public void YazilimciCalis(){ System.out.println("Yazılımcı Java kodu geliştiriyor."); } } EzilecekSinif YE = new SinifEzme(); YE.YazilimciCalis(); } }
@Override kısmına dikkat çekmek istiyorum, dahili sınıflarda ezme işlemini bu şekilde gerçekleştiriyoruz. Ezeceğimiz methodun başına @Override yazmamız yeterli, fakat “@override” veya “@over ride” vb yazımlar yanlış olacağı için doğru şekilde yazmalıyız. Bu kod parçacığınında çıktısı yine yukardaki ile aynı olacaktır. PHP- Kodu: Yazılımcı c# kodu geliştiriyor. Yazılımcı Java kodu geliştiriyor.
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |