Serkan Ayyıldız

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

Visual Basic Sınıflar

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

Her yeni makalemizde yazılım dünyasında yeni şeyler (bişeyler işte) keşfetmeye devam ederken bugün siz VB.Net'çileri nesne yönelimli programalamanın özü olan class (sınıf) kavramını anlatıyorum,tabi sınıftan bahsettiğimiz okul sınıfı değil :)

Önceki makalemizde Visual Basic'de fonksiyonları - diğer adıyla metotları - öğrenmiş ve birkaç örnek yapmıştık.Fonksiyonların en büyük avantajlarından biri olan tekrar kullanılabilme özelliği sayesinde defalarca uzun satırlar yazmadan birçok işlevi çok daha kolay ve hızlı bir şekilde kodlayabiliyorduk.

Object orianted programming'in temel hedefi olan yeniden kullanılabilirlik ve daha az ve öz kod yazma konusu fonksiyonlardan da öteye giderek biz yazılımcılara hem daha hızlı hem de daha eğlenceli bir yazılım geliştirme olanağı sağlıyor.Bu konuyu ayrıca gerçek dünyadaki nesne ve olaylara dayandırarak daha anlamlı ve kolay algoritmalar kurabilmemizi sağlıyor.

Konuyu biraz daha somut hale getirirsek şundan bahsetmek istiyorum; düşünün ki tüm yazdığımız kodlar gerçek dünyadaki nesnelere (mesela elbiseler) benzese ve olayları (giymek-çıkarmak) daha somut olabilse ne güzel olurdu değil mi? Olurdu tabi ve oldu da :)
Nesne yönelimli programlama konusu son zamanlarda oldukça popüler olmasının yanı sıra biz yazılımcılara daha az kafa yememize olanak sağlıyor ve neyin nereden geldiğini düşünmek için daha az zaman harcattırıyor o yüzden her yazılımcının object orianted programming konusunu bilmesi zorunlu oldu diyebilirim.

Konuyu teoriden öte artık pratiğe geçirirsek az önceki elbise ile ilgili nasıl bir programlama yapılacağını öğrenelim,bunun için Visual Studio'yu açıp yeni bir Windows Form projesi oluşturuyor ve projemize ilk kez şu şekilde bir sınıf ekliyoruz:

vbnet-class

vbnet-sinif

Sınıfımızı oluşturduktan sonra karşımızda boş bir Visual Basic.Net sınıfı ortaya çıkıyor:

visual-basic-sinif

Sınıfımızı oluşturduğumuza göre artık gerçek bir dünya nesnesini yazılım tarafına modelleyebiliriz,elbise sınıfı içeriğinde özellikler (property) ve metotları barındıracağı için şimdi kendi kendimize bazı sorular sormalıyız:

Bir elbisenin neyi olur? Markası,Rengi,Bedeni,Sezonu,Cinsiyeti...
Peki bir elbiseyle ne yapılır? Giyilebilir,çıkarılabilir (üstümüzden),yıkanabilir,ütülenebilir...


Bu yapılacaklar bizim fonksiyonlarımız olurken özellikleri property'lerimiz olacak,o yüzden sınıfımızın içeriğini doldurabiliriz şimdi...
Bir sınıfa property eklemek için ekrana property yazdıktan sonra iki kez hızlıca Tab tuşuna basmanız yeterli,eğer Tab tuşunu bulamıyorsanız hemen Caps Lock tuşunun üstünde yer alıyor.Ekrana property yazdıktan sonra Visual Studio bizim yerimize zahmetsizce bir property oluşturur:

visual-basic-sinif-property

Property (özellik) kavramından biraz bahsedersek oluşturulan sınıfın kullanılamak istediği yerde değer alan ve/veya değer döndüren basit değişkenlerdir diyebiliriz,bu değişkenlerin tipleri daha önceden bildiğiniz ilkel tiplerden olan string,int,boolean olabileceği gibi ileride öğreneceğimiz karmaşık tipler de olabilir.

Property ile bilmemiz gereken bir diğer konu ise field (alan) kavramıdır; field'lar property'lerin alacağı değerleri sınıfın örnek kopyasında (instance) tutacak yerel değişkenlerdir,yerel diyoruz çünkü özellikle belirtilmediğinde dışarıdan erişime kapalıdır.
Yukarıdaki örnekte 

"Private newPropertyValue As String" satırı field olurken,

    Public Property NewProperty() As String
        Get
            Return newPropertyValue
        End Get
        Set(ByVal value As String)
            newPropertyValue = value
        End Set
    End Property

satırları property'nin kendisidir.Aklınızda basitçe tutmanız adına field tek satırdan ibarettir diye hatırlamanız
yeterlidir.
Şimdi oluşturduğumuz bu property ve fieldleri "Marka" olarak düzenleyelim:

vbnet-property

Dikkat ederseniz field ile property'nin "marka" sözcükleri birbirinden farklı çünkü genel yazılım standartları gereği property'ler daha büyük harflerle başlarken field'lar küçük harflerle ya da önünde istediğimiz geçerli bir karakterle yazılırlar.Bu sayede çok fazla property ve field içeren sınıflarda okumayı kolaylaştırır. 

Elbise sınıfımıza ait "Marka" property'sini ekledikten sonra sırada renk,beden,sezon ve cinsiyet özelliklerini
ekleyelim:

visual-basic-field-property-class

Oluşturduğumuz her özellik ekranda çok yer kapladığı için görebilmeniz için her property yanındaki eksi işaretiyle
kodları daralttım,sonra aklınızda bunlarda ne,farklı bişey mi diye sorular oluşmasın :)

Elbise class'ımıza ait property'leri ve field'ları yazdıktan sonra sıra geldi metotları yazmaya,ne metodu derseniz C#'dan gelen dil alışkanlığı aslında metot derken hep VB fonksiyonları kastediyorum.Şimdi sınıfımıza giy,çıkart,yıka,ütüle metotlarımızı yazıyoruz:

vbnet-sinif-fonksiyon

Böylece Elbise class'ımızı yazmış bulunuyoruz ama nasıl kullanacağız?

Varsayılan olarak bir projedeki yazılmış sınıfı kullanabilmek için instance (örnek kopya) alınır ve instance ile sınıf içerisinde yazılmış olan özelliklere,metotlara ulaşılabilir ve değerler verilir.Instance alabilmek için sınıfın adı yazıldıktan sonra istediğimiz bir sözcük ile "new" anahatar kelimesi iki satırdan oluşan kod yazılır ve yazdığımız sözcüğün sonuna nokta (.) işareti konarak sınıfın içeriğine ulaşılır.
Örnek projemizin başında oluşturduğumuz formumuza geri dönelim ve Form_Load eventine geçerek sınıfımızı çağıralım:

visual-basic-class-instance

Sınıfımızdan bir instance oluşturduğumuza göre gerçek bir elbise yaratalım:

vbnet-class-instance

Bir sınıfın instance alınarak çağrılan elemanlarına değer verirken tiplerine uygun değerler vermeliyiz,örneğin "Marka"
property'si String bir ifade olduğu için sayısal karşılık verdiğimizde programalama hatası ortaya çıkar ve derleyici
hata verir.
Elbiseye ait fonksiyonları da çağıralım:

vbnet-class-metotlar

Sınıfımıza ait fonksiyonları çağırdık ancak fonksiyonlarımızın içeriğinde herhangi bir kod olmadığı için projeyi
çalıştırdığımızda herhangi bir işlemle karşılaşmayacağız çünkü bu dersimiz nesne yönelimli programalamanın temellerinden
biri olan sınıf kavramını öğrenmek oluyor.

Şu an için Visual Basic sınıf kavramını bu kadarıyla öğrenmeniz yeterli görünüyor,ilerleyen makalelerimizde daha detaylı object orianted programming konularını öğrenirken sürekli olarak sınıfları öğrenmeye devam edeceğiz ve sınıflarımızı
gerçek anlamda profesyonel olarak projelerimizde kullanacağız.

O yüzden bir sonraki makalemizde görüşmek üzere hoşçakalın diyorum :)

Projeyi İndir

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

Menu