" Umut, hiç görmeyen birine gökkuşağını anlatmak kadar zor ve imkansız... "

Categories

-

Vb.Net Nesne Yönelimli Programlama 1-b

Bir öncekli yazimizda vb.net programlama dili kullanilarak Sinif (Class) ve bu siniflardan olusturulan Nesne (Object) hakkinda genel bir bilgi vererek, programlamada Sinif kullanmanin faydalarindan, neden programlama dillerinde sinif ve nesne yapisindan faydanilmasi gerekiyor bahsetmistik. Simdi ise sinif ve nesne tanimlamaya kisa bir göz atalim.

1.b Sinif ve Nesne Tanimlamak

Siniflar Class sözcügüyle tanimlanir ve her zamanki gibi kod blogunu temsil eden parantezler kullanilir.

'Class 
'     Sinif Uyeleri
'End Class

Tanimlamada geçen niteleyici ifadesi Public, Private gibi degerleri alip söz konusu sinifin disaridan nasil erisilebilecegini belirtir. Bir degiskeni, bir sinif türündenden tanimlamak için klasik degisken tanimlama formati kullanilir.

Dim As

Siniftan bir örnek (instance), yani bir nesne olusturmak için New anahtar sözcügü kullanilir.

Dim As
= New

Asagidaki örnekte Araba isminde bir sinif yazilmis ve bundan ford isminde bir nesne olusturulmustur.

Class Araba
End Class
Dim Ford As Araba
Ford = New Araba

Ford nesnesi iki satirda tanimlandi; önce Ford isminde Araba tipinde bir degisken tanimlanmistir. Bu degisken nesne tanimlayip Nothing degerini içerir. Bu da onun bir nesne ile iliskilendirilmedigi anlamina gelir. Ikinci satirda New anahtar sözcügüyle Araba türünde bir nesne olusturup Ford degiskeni bu nesneyle iliskilendirilmistir.

Bir siniftan ancak bir nesne olusturuldugu zaman, sinif bellege tasinmis olur. Yukaridaki örnekte new operatörü, Araba sinifinin bir kopyasini bellege tasir ve geriye döndürdügü bellek adresini Ford degiskeninde saklar. Böylece Ford, nesnesinin kendini degil nesnenin yerini gösteren referansi tasimis olur. Iki satirda yaptigimiz tanimlamayi asagidaki gibi tek satirda da yapabiliriz.

Dim ford as Araba = New Araba

Siniflar ve bundan türetilen nesneler, referans türleri olduklari için referanslari basla bir degiskene kopyalandigi zaman sinifin yeni bir kopyasini olusturmaz. Her iki degisken ayni nesneyi gösterir.

Dim Ford as Araba = New Araba
Dim Honda as Araba
Honda = Ford
Dim Ferrari as Araba = New Araba

Ford ve Honda degiskenleri ayni, Ferrari ise farkli bir nesne ile iliskilendirilmistir.

Net;in en önemli üstünlügü her seyin birer nesne olmasidir. Taninlanan tüm siniflar default olarak System.Object sinifindan türetilmistir.

Ayni isim-uzayinda (Namespace) olmak kosuluyla içiçe siniflar (nested classes) olusturabiliriz. Içteki siniflarin erisim belirleyicilerinin ifade edilmesi beklenir. Iç siniflara yine ayni sekilde '.' Kullanarak hiyerarsi yöntemiyle erisilir.

Imports System

Class HayvanAlemi

    Class omurgalilar
        Class Baliklar
            Public SolunumTur As String = "Solungaç"
        End Class
        Class kuslar
            Public SolunumTur As String = "Akciger"
        End Class
    End Class

    Class omurgasizlar
        Class Sungerler
        End Class
        Class Bocekler
        End Class
    End Class

End Class

Module Module1
  
    Sub Main()

        Dim ObjBalik As New HayvanAlemi.omurgalilar.Baliklar
        Dim ObjKus As New HayvanAlemi.omurgalilar.kuslar

        Console.WriteLine("Baliklar, {0} solunum yaparlar.", ObjBalik.SolunumTur)
        Console.WriteLine("Kuslar, {0} solunumu yaparlar.", ObjKus.SolunumTur)
        Console.ReadLine()

    End Sub

End Module

  • 0
  • 1151
  • 0

- BUNLARIDA GÖZDEN GEÇİREBİLİRSİNİZ -

HENÜZ YORUM YAPILMAMIŞ !

Yorum yazın

HAKKIMDA

KONULARI TAKİP EDİN

SOSYAL AĞLAR

  • Mesajınızı Gonderin