-->

Sponsor Alanı

Slider

İlgi Çeken Videolar

Sağlık

Teknoloji

Sinema

Televizyon

Ne Nedir?

En5 Konular

ads
» » » Visual Basic .NET Nesne Tabanlı Programlama (Object Oriented Programming)

ads
ads

Giriş


Sınıflar (Classes)
Sınıflarla Çalışmak
Sınıf Üyeleri (Members)
Kalıtım (Inheritance)


Sınıf Nedir?


Sınıf (Class), bir nesneyi, nesnenin özellik, olay ve metodlarını tanımlayan tasarıma benzetilebilir.
Sınıflar, sadece nesneyi tanımlayan gerekli elemanları kullanıcıya göstermek için Soyutlama’yı (Abstraction) kullanırlar.
Soyutlama’yı sağlayan yapıya Kapsülleme (Encapsulation) denir.


visualbasicdersleri


Sınıflarla Çalışmak

Yeni Bir Sınıf Yaratma
Sınıflara Üyelerin (Members) Eklenmesi
Metodların (Methods) Eklenmesi
Özelliklerin (Properties) Eklenmesi
Sınıftan Nesne Türetme


Yeni Bir Sınıf Yaratma

Project Menüsünden Add Class seçilirek veya,
Project Explorer penceresinden Add-Add Class seçilerek yeni bir sınıf yaratılır

Örnek
Public Class CepTelefonu
...
End Class


Metodların (Methods) Eklenmesi

Public Class CepTelefonu
Private Marka As String
Public Sub NumaraAra(ByVal TelNo As String)
Messagebox.Show(“Arandı...”)
End Sub
End Class


Özelliklerin (Properties) Eklenmesi

Public Class CepTelefonu
Public tRenk As Color
Public tMarka As String
Public Property Marka() As String
Get
Return tMarka
End Get
Set(ByVal Value As String)
tMarka = Value
End Set
End Property
End Class


Sınıftan Nesne Türetme


Sınıftan nesne türetilirken New anahtar kelimesi kullanılır

Constructor Nedir?


Nesne yaratılırken çalışan kod bloğudur.


Public Sub New( )
' Başlangıç koşullarını belirle
tMarka = “Nokia”
End Sub


Constructor’lar Overrides anahtar kelimesine ihtiyaç duymadan Override edilebilirler.


Destructor Nedir?


Nesne yok edilirken çalışan kod bloğudur. Runtime tarafından otomatik olarak ta çağırılabilir.


Protected Overrides Sub Finalize( )
' Açık olan veri tabanı bağlantıları ya da diğer kaynaklar kapatılır.
conn.Close
End Sub


Paylaşılan Üyeler (Shared Members)

Birden fazla sınıfın tek bir sınıf üyesini kullanabilmesini sağlar.


Public Class CepTelefonu
Public Shared Marka As String
End Class


CepTelefonu.Marka=“Motorola”


Paylaşılan Metodlar (Shared Methods)


Bir sınıf örneği tanımlamadan kullanılabilir.


CepTelefonu sınıfı kodu
Public Shared Function Marka() As String
...
End Class


‘Form kodu (Client code)
Messagebox.Show(CepTelefonu.Marka)


Inheritance (Kalıtım) Nedir?


Inheritance “Bir türüdür” bağlantısını sağlar.
Birden fazla sınıfın aynı özellik, olay ve metodları paylaşabilmesini sağlar.


Inheritance (Kalıtım) Nedir?


Türetilen sınıf, temel sınıfın tüm özellik, olay ve metodlarını kalıtım yoluyla devralır.

Kalıtım için kullanılabilecek anahtar kelimeler:
Inherits: Bir temel sınıftan kalıtım ile devralır. (Türetilen sınıfta kullanılır)
NotInheritable: Kalıtım ile devralınamaz. (Temel sınıfta kullanılır)
MustInherit: Sınıfın örneği türetilemez. Mutlaka kalıtım ile devralınmalıdır. (Temel sınıfta kullanılır)
Overridable, NotOverridable, MustOverride: Türetilen sınıfın, temel sınıfın bir metodunu Override edebilme haklarını belirler. (Temel sınıfta kullanılır)
Overrides: Overridable olarak ayarlanmış bir metodu, Override edecek metodun başına yazılır. (Türetilen sınıfta kullanılır)
Overloads: Türetilen sınıfta, temel sınıf metodunun aynı ad, değişik parametrelerle kullanılmasını sağlar. (Türetilen sınıfta kullanılır)


Inherits

Public Class Insan
...
End Class

Public Class Isci
Inherits Insan
....
End Class
‘Client Kod
Dim yInsan As New Insan() ‘Hata yok
Dim yIsci As New Isci() ‘Hata yok


Burada Isci isimli türetilmiş sınıf, tüm özellik, olay ve metodlarını Insan isimli temel sınıftan almaktadır. Client tarafta kullanılan kodlarla yInsan isminde, Insan sınıfı türünden bir nesne yaratılmaktadır. Ayrıca yIsci isminde, Isci sınıfı türünden bir nesne yaratılmaktadır.


NotInheritable

Public NotInheritable Class Insan
...
End Class

Public Class Isci
Inherits Insan’ Hata var
....
End Class
‘Client Kod
Dim yInsan As New Insan() ‘Hata yok
Dim yIsci As New Isci() ‘Hata var


Burada Insan sınıfı, NotInheritable anahtar kelimesinden dolayı, kalıtım yoluyla devralınamaz özelliktedir. Bu yüzden Isci sınıfında Inherits anahtar kelimesinin bulunduğu satırda bir derleyici hatası ortaya çıkar. Dolayısıyla, yIsci isimli nesne de yaratılamaz.


MustInherit

Public MusInherit Class Insan
...
End Class

Public Class Isci
Inherits Insan
....
End Class
‘Client Kod
Dim yInsan As New Insan() ‘Hata var
Dim yIsci As New Isci() ‘Hata yok



Burada Insan sınıfı, MustInherit anahtar kelimesinden dolayı, kalıtım yoluyla devralıması zorunlu özelliktedir. Insan sınıfından doğrudan bir nesne türetilemez. Dolayısıyla, yInsan isimli nesne de yaratılamaz.


Overridable

Public Class Insan
Public Overridable Sub Yuru ()
Messagebox.Show “Insan yürüyor”
End Sub
End Class


Override etme işlemi, türetilen sınıf içerisindeki bir metodun, temel sınıftaki metod yerine kullanılmasını sağlar.


Overrides

Public Class Insan
Public Overridable Sub Yuru ()
Messagebox.Show “Insan yürüyor”
End Sub
End Class

Public Class Isci
Inherits Insan
Public Overrides Sub Yuru ()
Messagebox.Show “Işçi yürüyor”
End Sub
End Class


Burada Insan sınıfını kalıtım ile devralan Isci sınıfı, temel sınıftaki Yuru isimli metodu Override etmektedir. Yani devraldığı metodu kullanmak yerine, kendi içerisindeki metodu kullanmaktadır.


Overloads

Public Class Insan
Public Sub Yuru ()
Messagebox.Show “Insan yürüyor”
End Sub
End Class

Public Class Isci
Inherits Insan
Public Overloads Sub Yuru (ByVal _
Isım As String)
Messagebox.Show Isım &_ “ yürüyor”
End Sub
End Class

Overload etme işleminde, türetilen sınıf içerisindeki bir metodun, temel sınıftaki metoda alternatif olarak kullanılabilmesi prensibi esastır. Burada Insan sınıfındaki isimli metoda alternatif olarak Yuru, Isci sınıfındaki Isım adında bir arguman alan Yuru isimli metod kullanılmıştır. Bu sınıflardan nesne türetildiğinde bu iki metottan istenen çağırılabilir.

ads

FacebookTwitterPinterestTumblrYazdır
«
Next
Sonraki Kayıt
»
Previous
Önceki Kayıt

Hiç yorum yok:

Yorum Yazmak İçin Aşağıdaki Seçenekleri Kullanınız


Lütfen konuyla alakasız yorumlardan kaçının. Sadece link almak amaçlı ( spam ) yorumlar yazmayınız. ( anında silinir ). Argo, küfür, siyasi vb. içerik barındıran yorumlar yazmayınız.

Not: Yorum yapabilmek için (yorumlama biçiminden) Anonim ( isimsiz olarak ) veya Adı/URL'yi ( Adı ( gerekli ) / URL ( kısmını boş bırakınız ), fonksiyonlarından seçim yaparak yorumlarınızı yazabilirsiniz.

Ancak Google + profili ile yapılan yorumları onaylamıyorum bilginize. Yorum yaparken Adı/URL kısmından yaparsanız sadece isim yazmanız yeterli. Site adresi, URL eklerseniz yorumunuz onaylanmaz.