Konular

Java Class Yapısında Miras İnheritance Ve Uzatma Extends İşlemleri

Miras inheritance ve uzatma extends

Java Class Yapısında Uzatma (Extends) İşlemleri

  Inheritance: Kalıtım – Nesneye yönelik programlamanın temel taşlarından birisidir. Classlar arası sıradüzensel (hiyerarşik) bir ilişkiyi tanımlar. Ortalama bir yazılım tasarısında sınıf sayısının onlar hatta yüzler ile ifade edildiği düşünülürse, yapı esnekliğini sağlamak açısından bu tür ilişkiler hayati önem taşır. Kısaca kalıtım altsınıflar, yani belli bir sınıf veya sınıflardan türeyen, uzmanlaşmış/ayrıntılandırılmış sınıflar yaratılmasına olanak tanır.

  Bir class'ın başka bir class'daki property ve method'lara sahip olmasına inheritance denir.. Belli bir class, daha genel bir kavramı ifade eden class'ın üyelerine sahip olarak, onları tekrar tanımlamak zorunda kalmaz. Bir class'ın diğerindeki özellikleri miras olarak alması için kullanılan keyword 'extends' dir. Anlam olarak "Bu class şu class'ı 'genişletir' yani ondaki property ve methodları alır ve yenilerini ekler" demektir.

  Inheritance, bazı durumlarda başka birinin yazdığı class'a bazı eklemeler yaparak belli bir işlem için kullanılır hale getirmek için kullanılabilir. Böylelikle sadece o class'ta olmayan property ve methodları eklemek suretiyle çok kısa sürede gelişmiş bir class sahibi olabilir. Bazen de ortak bir çok özellik içeren iki nesnede de aynen bulunan property ve methodları tanımlamaktan kurtulmak için kullanılabilir.

 

 Örnek verecek olursak, genel 'Köpek' sınıfının olası ayrıntılandırılmış altsınıfları, Kangal, Dalmaçyalı ve Sibirya kurdu olabilir. Bu altsınıflara, 'Köpek' sınıfının üyeleri kalıtım ilkesine göre miras kalır. Böylece, tekrar yazmaya gerek kalmadan her üç alt sınıf da 'Köpek' sınıfında yer alan renk özelliğine ve havlamak yöntemine sahip olurlar. Kalıtımın bu özelliği sayesinde yazılım geliştirme süresinde ciddi oranda tasarruf edilmektedir. Üst sınıftan miras kalan sınıf üyelerinin yanısıra, her altsınıf kendi özellik ve yöntemlerini de tanımlayabilir. Örneğin Kangal altsınıfına ona özel bir özellik olan kurt_boğ yöntemi eklenebilir. Böylece, eğer 'Karabaş' Kangal sınıfına ait ise, üstsınıf olan 'Köpek' sınıfının renk ve havlamak üyelerinin yanısıra kurt_boğ yöntemine de sahip olur. Bir sınıfın birden fazla üstsınıfı olduğu takdirde çoklu kalıtımdan söz edilmektedir.

 

Java Class Yapısında Miras (İnheritance) İşlemleri

    Extends bir sınıfın bütün elemanlarına nesne oluşturmadan direk erişim amacıyla kullanılıyor. Aşağıdaki örnekte Matematik sınıfı iki sayı arasında 4 işlem yapan metotlara sahip. Matematik2 sınıfı ise extends Matematik ile, Matematik sınıfının tüm metotlarını içine alıyor ve birde 3 sayı arasında toplam yapan metot tanımlıyor. Sonuç olarak Matematik sınıfının tüm metotlarını kullanmak için (tabiki erişim kontrolüne göre) Matematik2 sınıfında bir nesne oluşturmamız yeterli.

 

public class MatematikTest extends Matematik {
    // deneme icin kullanacagim main metodu  

    public static void main(String args[]) {
        // deneme icin iki tane nesne bir Matematik digeri Matematik2
        Matematik MatTest = new Matematik();
        Matematik2 MatTest2 = new Matematik2();
        // Bolme Yaptiriyorum 1. version
        System.out.println(MatTest.Bolum(10, 1));
        // Toplama 1. version
        System.out.println(MatTest2.Toplam(1, 2));
        // Toplama 2. version (Buraya dikkat!)
        System.out.println(MatTest2.Toplam(1, 1, 2));
        // Carpma 1. version
        System.out.println(MatTest2.Carpim(5, 6));
        // Carpma 1. version
        System.out.println(MatTest.Carpim(1, 9));
    }
}
// once iki sayi arasinda 4 islem yapan bir sinif olusturuyorum.
class Matematik {

    public int Toplam(int sayi1, int sayi2) {
        return (sayi1 + sayi2);
    }

    public int Fark(int sayi1, int sayi2) {
        return (sayi1 - sayi2);
    }

    public int Carpim(int sayi1, int sayi2) {
        return (sayi1 * sayi2);
    }

    public float Bolum(float sayi1, float sayi2) {
        if (sayi2 > 0) {
            return (sayi1 / sayi2);
        } else {
            return 0;
        }
    }
}
// 3 sayi arasinda toplama islemi yapan bir sinif olusturuyorum.
// bu sinif extends'i Matematik sinifi
class Matematik2 extends Matematik {

    public int Toplam(int sayi1, int sayi2, int sayi3) {
        return (sayi1 + sayi2 + sayi3);
    }
}
 

  Düzenleyen:Hüseyin DUYAN

Kaynak:http://gunlukengin.blogspot.com/2007_02_25_archive.html

              http://www.godoro.com/divisions/ehil/mahzen/Java/TheJavaBook/txt/html/document_Inheritance.html

Yorumunuzu Ekleyin

Java Değişken Tipleri

Byte, short, int, long, float, double, boolean, char, string

59,423 Okunma Henüz yorum yapılmamış 04/11/2009 13:11:31

Java Diziler

Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız. Java, dizi elemanlarını sırasıyla kontrol eder. Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur. Bu da cde çıkan hafıza bozulmalarını önler. Javada dizi kullanmak için ilk önce dizinin tipi verilir. Tip verilirken dizinin büyüklüğü belirtilmez

57,259 Okunma 2 Yorum 19/11/2007 15:13:25

Javada Fonksiyonlar

Değer alan ve geriye değer döndüren fonksiyonlar

55,225 Okunma Henüz yorum yapılmamış 01/04/2010 14:39:09

Stringleri Karşılaştırma

Stringler bilinen = operatörleri ile karşılaştırılmazlar, ayrıca == ve != operatörleride stringler içindeki karakterleri karşılaştırmazlar

40,810 Okunma Henüz yorum yapılmamış 18/10/2007 12:43:49

Java Da Operatörler

Aritmetik operatorler 4 işlem ve mod, arttırma operatorleri, ilişkisel operatorler, mantıksal operatorler, kısa devre mantıksal operatorler

39,877 Okunma Henüz yorum yapılmamış 02/12/2009 13:58:19

J2ee, j2se, j2me Nedir?

J2ee,j2se,j2me hakkında bilgi

36,164 Okunma 1 Yorum 21/10/2009 17:00:15 16/07/2014 17:00:35

Java Terimleri

Java, birbirinden farklı aygıtlarda çalışabilen, bu aygıtlar arasında iletişimi kolay hale getiren programlama dili ve platformudur. Java diliyle yazılmış programlar, Windows, UNIX, Mac işletim sistemi yüklü bilgisayarlarda hiç bir değişiklik yapmayı gerektirmeden çalışabilmektedirler

35,579 Okunma Henüz yorum yapılmamış 16/10/2007 13:23:36

Javada Diziler

Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen dizi erişim indisi ile erişilir. Bir dizide n tane eleman varsa dizinin uzunluğu da n kadardır; ilk elemanın indisi/konumu 0’dan başlar, son elemanı ise n-1’dir.

30,856 Okunma 1 Yorum 14/04/2008 11:01:20

for Döngüsü

28,625 Okunma Henüz yorum yapılmamış 30/12/2009 11:02:00

Java 3D

Son yıllarda çoklu ortamda ilerleme kaydeden Java, Java3D ile yüksek performans isteyen üç boyutlu grafiklerde de 'Ben varım!' diyor.

27,455 Okunma Henüz yorum yapılmamış 26/01/2009 22:23:10

while döngüsü

Dizilerin olmazsa olmazı

26,736 Okunma Henüz yorum yapılmamış 17/12/2009 10:53:28

Java Operatörleri

Mod Operatörü, Aritmetik Atama Operatörü, Arttırma Azaltma Operatörleri, Iliskisel Operatorler ve Kısa Devre Iliskisel Operatörler, Kısa devre iliskisel operatorler, ? Operatoru

26,712 Okunma Henüz yorum yapılmamış 04/12/2009 12:11:34

Yükleniyor...