MeslekForum Mesleki Gelişim Forumu

Go Back   MeslekForum Mesleki Gelişim Forumu > Bilgisayar Yazılım Donanım > Programlama

Cevapla
 
LinkBack Seçenekler Stil
Alt 12-08-2009, 00:48   #1 (permalink)
Kullanıcı Profili
SITE ADMİN
Taner - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: Oct 2009
Üye No : 2
Mesajlar: 94
Standart Kalıtım (Inheritance) Nedir ?

Normalde bu kavramı gerçek hayattan biliyoruz. En basit anlamda, örneğin “Ben,
annemin gözlerini almışım.” dediğimde, tıp uzmanlarının buna getirdikleri yorum " siz
annenizden kalıtımsal olarak şu özelikleri almışsınız." oluyor. Programlama dillerinde de
kalıtımın rolünün aynı olduğunu söyleyebiliriz. Zaten nesne tabanlı programlama dillerini
tasarlayan uzmanlar, gerçek hayat problemlerini, bilgisayar ortamına taşıyabilmek amacıyla
en etkili modelleri geliştirmişler, bu model içerisine kalıtımı da katarak çok önemli bir
özelliğin kullanılabilmesini sağlamışlardır.


Resim 1.4: Kalıtım (Inheritance) kavramı

Kalıtım kavramının programlama dilleri içerisinde bir tanımını yapmak lazım. En
genel tanımı ile kalıtım, "Bir sınıftan yeni sınıflar türetmektir" Herşeyden önce kalıtım
yolu ile bir sınıftan yeni sınıflar türetmenin, türetilen sınıflara etkisi nedir? Bu sorunun
cevabı kalıtımın da özünü oluşturmaktadır. Türetilen her bir sınıf, türediği sınıfın
özelliklerini de devralır. Buradan, türetilmiş bir sınıf içerisinden, türediği sınıfa ait üyelere
erişilebileceği sonucunu çıkartabiliriz. Elbette bu erişimin de bazı kuralları vardır. Örneğin
erişim belirleyicilerinin etkisi veya aynı üyelerin kullanılışı gibi durumlar.
Neden bir sınıftan başka sınıflar türetiriz? Bunun cevabı şudur: Tüm sınıflarda ortak
olan özellikleri tek bir sınıf içerisinde toparlamak. Bu modellerimizi geliştirirken, her sınıf
için ortak olan üyelerin tekrar yazılmasını engellemekle kalmayacak, sınıflar arasında
düzenli bir hiyerarşi yapısının oluşmasını da sağlayacaktır.
Resim


Resim 1.5: Kalıtım kavramına bir başka örnek

Şimdi güzel bir örnek verelim. Gerçek hayat modelleri bu iş için biçilmiş kaftantır.
Örneğin, otomobilleri bir temel sınıf olarak düşünebiliriz.
Bu sınıftan otomobillere ait değişik kategorileri türetebiliriz.(Resim 1.5’e bakınız)
Buradaki tüm sınıfların ortak bir takım özellikleri var. Bir motorlarının olması,
tekerleklerinin olması, viteslerinin olması vb. ama aynı zamanda her ayrı sınıfın kendine has
özellikleri de vardır. Örneğin ralli araçları için güvenlik bariyerlerinin olması, pilotlar için
kaskların kullanılması gibi. Bu tabloyu inceleyince “Her ralli aracı bir otomobildir”
diyebiliriz. Bu ralli araçlarının otomobil sınıfından türediğini gösterir. Diğer yandan “Her
WRC bir ralli aracıdır.” da diyebiliriz. Bu ise, WRC araçlarının ralli araçlarının birtakım
ortak özelliklerine sahip olduğunu ayrıca otomobillerin de bir takım ortak özelliklerine sahip
olduğunu gösterir.
İlk aşamada ralli, ticari, özel ve spor sınıflarının otomobil sınıfından türediğini
söyleyebiliriz. Bununla birlikte WRC ve GrupN sınıflarıda otomobil sınıfından türeyen ralli
sınıfından türemiştir. Yani burada şunu söyleyebilmek mümkündür. WRC sınıfı hem ralli
sınıfının hem de otomobil sınıfının özelliklerine kalıtımsal olarak sahiptir.

Kaynak : MEGEP | Nesne Tabanlı Programlama 1
__________________
Beni Sevmek İçin Programlanma Devrelerini Yakarım !
Taner isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:23.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30