Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Visual Basic.Net Static (Shared) Sınıf Üyeleri

Visual Basic.Net meraklısı yazılımcılara yeniden selamlar :)

Object orianted programming programlama tekniklerine merak saldığımız son makalelerimizde bugün static sınıf ve üyelerini öğreneceğiz.
C# ve Java makalelerimde benzer konuları iki defa yazdığım için bu makaleyi yazarken açıkçası biraz üşeniyorum,o yüzden hem aynı konuları tekrar tekrar okumamak adına hem de teorik anlamda static sınıf ve üyeleri öğrenebilmeniz adına C# Static Sınıflar ve Üyeler ve Java Static Metot ve Propertyler makalelerini okumanızı öneririm.

Üstteki verdiğim iki makalemi sizde okumaya üşendiyseniz zararı yok kısaca aşağıda nasıl olsa aynı konulara değineceğiz ama o iki makaleyi okusanız daha iyiydi :)

Nesne yönelimli programlamanın alt bileşenlerinden biri olan static (durağan,sabit) deyimi bir sınıfın,değişkenin ya da metodun bağlı olduğu sınıftan instance (örnek kopya) alınmadan kullanılabilmesi demektir.
Hatırlarsanız dinamik yapıda olan bir VB.Net sınıfından

Dim degisken As SinifAdi
degisken=New SinifAdi


şeklinde instance alıyor ve değişkenimizin sonuna nokta işareti koyarak o sınıfın içerisinde yer alan fonksiyon (metot),property gibi üyelere erişebiliyor ve değerler atayarak kullanabiliyorduk.İşte static kavramı tam bu noktada devreye giriyor ve sınıftan instance almadan kolaylıkla çağrılabiliyor ancak bu güzelliğinin dezavantajı ise bilgisayarımızın Ram belleğinde kalıcı kalıyor ve program kapatılana kadar sistem kaynağımızı tüketiyor.

Neyse performans konularına henüz girmek için biraz erken,o yüzden şimdilik tekniği öğrensek yeterli olur.Gelelim Visual Basic diline...Yukarıda bahsettiğim static deyimi aslında Visual Basic dilinde yok ama yerine shared (paylaşılan) deyimi kullanılır.Shared tıpkı static kavramıyla birebir aynıdır ancak shared sözcüğü sadece property ve metodlarda kullanılır, sınıf adında kullanılmaz.

Buraya kadar çok fazla teorik gittik ve biraz kod yazarak öğrenelim gerisini..Öncelikle Visual Studio IDE'mizi açıyor ve yeni bir VB.Net Windows Form projesi oluşturuyor ardından "Telefon" adında bir sınıf oluşturuyoruz:

visual-basic-class

Telefon classına marka ve model adında iki shared (static) property oluşturuyoruz:

vbnet-shared-property

Sınıfımızın üyeleri shared olduğu için artık instance sözcüğünden söz etmiyoruz,o yüzden formumuzun Form_Load
eventine sınıfımızın adını yazıyor ve marka model property'lerine değerler veriyoruz:

vbnet-static-class

Artık bu iki property'nin değeri program kapatılıncaya kadar ya da yeni değerler atanıncaya kadar bellekte sabitlenmiş oldu...
Şimdi de sınıfımıza "CagriAt" isimli shared bir fonksiyon yazalım:

vbnet-shared-metod

Tekrar formumuzun load eventine geçelim ve metodumuzu çağıralım:

visual-basic-shared-metot

Gördüğünüz gibi dışarıdan sınıfa erişebildiğimiz shared olarak etiketli her üyeye instance almaya gerek duymadan
kolaylıkla erişebiliyoruz :)

Gelelim önemli bir konuya..Eğer makalenin başında bahsettiğim C# ve Java makalelerini okuduysanız sadece sınıf
üyelerinin değil bizzat sınıfında static olarak tanımlanabildiğini görmüş olmalısınız ancak maalesef VB.Net'te bir sınıf static olarak tanımlanamıyor.
Visual Basic.Net sınıfları static-shared tarzı durağan olamıyor ama bu özelliğe en yakın olan NotInheritable (kalıtım alamaz) olarak işaretlense de aslında bunun static konusuyla alakası olduğunu söyleyemeyiz.

NotInheritable sınıflar hakkında ilerleyen VB.Net makalelerimizde öğreneceğimiz için kafanızı o konuda karıştırmanıza
gerek yok çünkü henüz inheritance (kalıtım) konusunu öğrenmedik ve bir sonraki Visual Basic makalemde yazmayı
planlıyorum.

Şimdilik bir sonraki makalemizde görüşmek üzere hoşçakalın :)

Projeyi İndir



Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu