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.

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
Hiç yorum yok: