Sistem Hocası & Yazılım Hocası Forumu
 
 

Geri git   Sistem Hocası & Yazılım Hocası Forumu > Öğrenci Gurupları Araştırma Ödevleri > Konya MCPD > Konya MCPD Haftasonu 2. Grup (Suleyman Ozturk)

Konya MCPD Haftasonu 2. Grup (Suleyman Ozturk) Konya MCPD Haftasonu 2. Grup (Suleyman Ozturk)

Cevapla
 
Seçenekler Stil
Alt 17-12-2008, 02:23   #1
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Sealed Class'lar...

SEALED CLASS'LAR VE KULLANIM ŞEKİLLERİ



Arkadaşlar; class'lara nasıl erişebileceğimize karar verebildiğimizi biliyorsunuz. Kimi class hem miras alınır hem miras verilir hemde new ile türetilebilir. Ancak bazı durumlarda, özellikle proje yapılarında bazı class'ların sadece miras alınarak kullanılmasını yani "new" ile türetilememesini, bazı class'larında sadece new ile türetilerek kullanılmasını yani miras alınamamasını isteyebiliriz. Bu tür kullanımlarda miras alınmasını istemediğimiz class'lar için SEALED CLASS kullanıyoruz.

Sealed Class'ların yapı aşamasında nasıl kullanılabileceklerine bir örnek olarak yukardaki resme bakabiliriz. Bu resimde okların nerden miras alındığını gösterdiğini unutmayalım. 1. resimde Abstract Class 1, hem Abstract Class 2 ye hemde Sealed Class 1 ve 2 ye miras verebiliyor. 2. resimde ise Sealed Class 4'den Abstract Class 3 e miras verilemediğini görüyoruz.

Kod aşamasında bu işin nasıl olduğunu görelim;

public sealed class SporArac : BinekArac
{
//class members....

}

Burada ":BinekArac" kısmı; bir SEALED CLASS olan SporArac'ın, daha önce tanımlanmış olan ve bir abstract class olan BinekArac class'ından miras aldığını gösteriyor. Kullanmak zorunda değiliz ama en azından sealed class'ların miras alabildiğini görüyoruz.

Her class'ın bir default constructor'ı olduğunu biliyoruz. Sealed class'ların ":base" yoluyla kullanılamadıklarını anlatmak için bir örnek verelim;

Birbirinden miras alan class'lardan oluşan bir yapıda yukardaki gibi durum olsun ve en altta sealed class'larımız olsun ki hepsi sadece new ile türetilebilsin.

Programın çalışma aşamasında sealed class'lardan biri kullanıldığında tanımlamaya uygun olan constructor'ları en alttan en üstteki class'a kadar gezilerek hafızada yer açılır, ama içlerindeki "class members" lar işleme sokulmazlar. En üstteki miras veren ilk class'a ulaşıldığında gezilen constructor'lara yukardan aşağıya doğru sırayla girilir ve içlerindeki işlemler yapılır.

Bir class'da sadece default constructor olmayabilir. Kullanım şekline uygun olarak overload edilmiş diğer constructor'larda kullanılabilir -ki biz bu constructor'lara ":base" ile ulaştığımızı düşünelim.

":base" kullanımı şu şekildedir;

public sealed class SporArac : BinekArac
{
public SporArac() : base(true, true)//Ust Sınıfa Gonderılecek Parametreler
{
//constructor members...
}
}

SporArac class'ının default constructor'u her ney yaparsa yapsın, ondan önce işleme giren ve bir üstünde bulunan BinekArac class'ının overload edilmiş bir CONSTRUCTOR'una (true,true) değeri gönderir. Dikkat edin; base'ler sadece bir üstteki MİRAS VEREN class'ın parametreleri uygun olan CONSTRUCTOR'una değer gönderir ve default constructor'un çalışmasını önelmiş olur.

"Base" kullanımı buraya kadar sanırım yeterli. Sizinde anlıyacağınız gibi "base" sadece miras alınan class'a gider ve sealed class'lar miras alınamadığı için "base" yoluyla ulaşılamazlar.

Sealed class'larla ilgili daha ne anlatabilirim bilmiyorum
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Teşekkür Botu

erkanokman  (17-12-2008), Ipek Parilti (23-03-2009), Suleyman Ozturk  (22-12-2008)
Alt 17-12-2008, 02:27   #2
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Cevap: Sealed Class'lar...

Unuttum hemen ekleyeyim:

eğer kullanmak isterseniz, (ki yapı itibariyle bu çok mantıksız olurdu) şöyle bir hata mesajı alırsınız:

'InheritanceLibrary.BinekArac': cannot derive from sealed type 'InheritanceLibrary.SporArac'
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Teşekkür Botu

Suleyman Ozturk  (20-12-2008)
Alt 17-12-2008, 11:09   #3
Administrator
Points: 1.151, Level: 13 Points: 1.151, Level: 13 Points: 1.151, Level: 13
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Sat Apr 2008
Mesajlar: 50
Tecrübe Puanı: 50
erkanokman isimli üye Tecrübe puanını kapatmıştır.
Standart Cevap: Sealed Class'lar...

Gayet başarılı,teşekkürler.Bu arada Miras olayını çok severim,akılda kalıcıdır
__________________
Evrensel Aşkım Matematik Aşkım 2+2 = 2*2 = 2^2
erkanokman isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 17-12-2008, 20:09   #4
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Cevap: Sealed Class'lar...

rica ederim
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2008, 21:12   #5
Administrator
 

Ahmet Bircan - ait Kullanıcı Resmi (Avatar)
Points: 3.872, Level: 26 Points: 3.872, Level: 26 Points: 3.872, Level: 26
Activity: 66% Activity: 66% Activity: 66%
 
Üyelik tarihi: Fri May 2008
Yaş: 28
Mesajlar: 122
Tecrübe Puanı: 50
Ahmet Bircan isimli üye Tecrübe puanını kapatmıştır.
Standart Cevap: Sealed Class'lar...

Hoca döktürmüssün bakıyorumda .Eline sağlık
__________________
Başarılı olmak için Doğru Karar Vermek gerekir...

Doğru Karar Vermek için Tecrübe Sahibi Olmak gerekir...

ve Tecrübe Sahibi Olmak için ise geçmişte bol bol Yanlış Karar Vermek gerekir....
Ahmet Bircan isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2008, 21:16   #6
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Cevap: Sealed Class'lar...

tşk ederim
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 20-12-2008, 14:19   #7
Onbaşı
Points: 523, Level: 8 Points: 523, Level: 8 Points: 523, Level: 8
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Oct 2008
Mesajlar: 21
Tecrübe Puanı: 5
Erdoğan ÖZTÜRK foruma ısınıyor
Standart Cevap: Sealed Class'lar...

Hoca gerçekten başarılı bir çalışma olmuş.
Bilgi dolu.
Ellerine sağlık
__________________
Erdoğan ÖZTÜRK
Konya Uzman Bilişim Akademisi
Erdoğan ÖZTÜRK isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 21-12-2008, 19:33   #8
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Cevap: Sealed Class'lar...

tşk ederim erdoğancım
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 03-01-2009, 10:23   #9
Onbaşı
Points: 717, Level: 10 Points: 717, Level: 10 Points: 717, Level: 10
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Wed Jul 2008
Mesajlar: 12
Tecrübe Puanı: 9
mbgokmen forumda tanınıyor
Standart Cevap: Sealed Class'lar...

çok güzel bir çalışma tebrikler
__________________
MBG
mbgokmen isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 03-01-2009, 14:46   #10
Uzman Çavuş
Points: 2.505, Level: 20 Points: 2.505, Level: 20 Points: 2.505, Level: 20
Activity: 0% Activity: 0% Activity: 0%
 
Üyelik tarihi: Mon Sep 2008
Mesajlar: 78
Tecrübe Puanı: 77
CoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to beholdCoRTeX is a splendid one to behold
Standart Cevap: Sealed Class'lar...

teşekkür ederim
CoRTeX isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler
Stil

Yetkileriniz
Yeni konu açamazsınız
Konuya cevap veremezsiniz
You may not post attachments
You may not edit your posts

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

Gitmek istediğiniz klasörü seçiniz


Şu Anki Saat: 22:22


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Advertisement System V2.6 By   Branden