Uyarılar :
- Bu sayfada yazılanlar yeniden yayınlanamaz.
- Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.
Sınıflar :
-
Bilgisayar programlamada sınıflar (class) vasıtasıyla
program kendi görevlerini yerine getiren daha küçük parçalara
bölünür. Bu program parçaları (sınıflar) bir işin nasıl
yapılacağını tanımlarlar. Programın çalışması sırasında
hafızada sınıfların canlı örnekleri (nesneler) oluşturularak
çalıştırılır.
-
Sınıflar modül olarak da düşünülebilir. Yani bir sınıf tanımlaması
başka programlara eklenerek de kullanılabilir. Böylelikle bir sınıf
bir çok yazılımda işe yarar.
-
Sınıfları bir toplum içindeki kendi işinde uzmanlaşmış ve aynı zamanda
sadece kendi işine odaklanmış kişilere de benzetebilirsiniz. Bu kişiler
sayesinde yöneticiler daha genel işlere odaklanarak yeni projeler
geliştirmeye zaman ve imkan bulabilir ve daha iyi işler yapabilir.
Programcı da sınıflar sayesinde sınıfların yaptığı işlerle veya sınıfları
yazmakla ayrıca uğraşmak zorunda kalmaz, bir kez yazdığı sınıfı veya başkalarının
yazdığı sınıfları defalarca kullanabilir ve programın genel amaçlarına odaklanıp
daha büyük işler başarmak için zaman ve imkan bulabilir.
-
Sınıfların bir avantajı da hata ayıklamayı kolaylaştırmasıdır. Sınıfların
yaptığı işleri gerçekleştiren kodlarla programın diğer kodları veya diğer
sınıfların kodları birbirine karışmadığından her sınıf veya programın kendisi
ayrı ayrı ele alınarak daha küçük ve karmaşık olmayan kodlarla uğraşılmış
olur, bu şekilde daha az hata içeren programlar yazılabilir veya varsa hatalar daha
çabuk tespit edilebilir ve daha çabuk giderilebilir.
-
Bazı programcılar sadece sınıflar yazarak çok yetenekli ve gelişmiş sınflar
oluştururlar. Bunları diğerlerinin kullanımına sunarlar. Böylelikle her programcı
her şeyi bilmek zorunda kalmadan program yazabilir (Örneğin .NET Framework Sınıf
Kütüphanesi (.NET Framework Class Library) bizlere, yazmak için bilgimizin ve / veya
vaktimizin yetmeyeceği binlerce işe yarar sınıf sunar).
-
VB.NET tam olarak bir nesneye yönelik programlama dilidir.
' Bu örneği kullanabilmek için VB.Net ile bir uygulama oluşturun,
' formunuzun üzerine bir tuş ekleyin. Tuşu çift tıklayıp kod
' bölümüne girdikten sonra (tuşu çift tıklamadan kod bölümüne
' girerseniz veya tuşun adını değiştirirseniz örnek çalışmaz)
' kod sayfasındaki herşeyi silip alttakileri yapıştırın.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Dortgen isimli sınıfımızdan bir örnek (nesne) oluşturuyoruz.
Dim Kare As Dortgen = New Dortgen()
' Örneğin 2 özelliğini değiştiriyoruz.
Kare.Genislik = 10
Kare.Yukseklik = 10
' Örneğin metodlarını çağırıyoruz.
' (Sınıfımızın metodları değer döndürdüklerinden bu değerleri ekranda mesaj kutusu
' ile görüntülüyoruz).
MessageBox.Show(Kare.Cevresi())
MessageBox.Show(Kare.Alani())
End Sub
End Class
' Dortgen isimli bir sınıf tanımlanıyor. Public ifadesi bu sınıfın yazıldığı yer (kod sayfası)
' dışından da kullanılmasını sağlar.
Public Class Dortgen
' Sınıfın özelliklerini sınıf içinde tutan gizli değişkenler tanımlanıyor.
' Bu değişkenler, sınıfın örneğini kullananların değişkenlere doğrudan erişerek
' bizim yapılmasını istemediğiniz değişiklikleri yapmalarını
' engellemek için private olarak tanımlanıyor. Private değişkenlere
' sadece sınıfın içinden erişilebilir (Nesneye yönelik programlamanın sarmalama / encapsulation
' ilkesi).
Private GizliGenislik As Integer
Private GizliYukseklik As Integer
' Yapılandırıcı tanımlanıyor. Yapılandırıcı, sınıfın örneği new ifadesi
' ile oluşturulduğunda ilk yapılacak işlemlerin tanımlanması için kullanılır.
' Örneğimizde, gizli değişkenlerimize ilk değerlerini veriyoruz. Burada
' başka yapılacak işler varsa eklenebilir.
Public Sub New()
GizliGenislik = 0
GizliYukseklik = 0
End Sub
' Bir özellik tanımlıyoruz. Özellikleri bu şekilde tanımlamak, özelliğimizin
' tutulduğu asıl değişkene doğrudan erişimi engeller, böylelikle bizim
' istemediğimiz zamanlarda bu değerlere müdahalenin engellenmesini sağlarız.
' Özellik başlangıç satırının (Public Property ...) yanındaki As Integer ifadesi
' bu özelliğin bir tamsayı değeri sakladığını belirtir.
' Özellik tanımındaki Get bölümü, özelliğin değeri istendiğinde (Örneğin sınıfımızın
' örneğini kullanan kişi, örneğin / nesnenin adının "Kare" olduğunu varsayarsak
' "MessageBox.Show(Kare.Genislik)" gibi bir kod çalıştırdığında)
' çalıştırılacak bölümdür. Örneğimizde gizli değişkenimizin değerini döndürüyoruz.
' Değer döndürmeden önce yapılacak işlemler varsa Return ifadesinin üstüne eklenebilir.
' Özellik tanımındaki Set bölümü, özelliğin değeri değiştirilmek istendiğinde
' çalıştırılır (Örneğin sınıfımızın örneğini kullanan kişi, örneğin / nesnenin adının
' "Kare" olduğunu varsayarsak "Kare.Genislik = 5"
' gibi bir ifade kullandığında). Burada değer değiştirilmek istendiğinde gizli değişkenimizin
' değerini gönderiyoruz. Value parametresi bize otomatik olarak (biz bir şey
' yapmadan) kullanıcının özelliğe atadığı değeri verir. Örneğimizde
' değeri asıl değişkene atamadan önce kontrol ediyoruz. Değer 1'den küçük ise
' (tamsayılarla çalıştığımızdan ve 0 genişlik olmayacağından) bir uyarı
' görüntüleyoruz ve değeri değiştirmiyoruz. Özelliklerin aşağıdaki gibi
' tanımlanması sayesinde, özellik değeri değiştirilmeden veya döndürülmeden
' önce yapılacak işlemlerin veya kontrollerin eklenmesi fırsatına sahip oluyoruz.
Public Property Genislik() As Integer
Get
Return GizliGenislik
End Get
Set(ByVal value As Integer)
If value < 1 Then
MessageBox.Show("Genislik özelliğinin değeri 1'den küçük olamaz.")
Else
GizliGenislik = value
End If
End Set
End Property
Public Property Yukseklik() As Integer
Get
Return GizliYukseklik
End Get
Set(ByVal value As Integer)
If value < 1 Then
MessageBox.Show("Yukseklik özelliğinin değeri 1'den küçük olamaz.")
Else
GizliYukseklik = value
End If
End Set
End Property
' Aşağıda 2 tane metod tanımlanmıştır. Metodlar, sınıfın yapacağı işleri
' tanımlar. Bizim metodlarımız function olarak tanımlandıklarından bir
' değer döndürürler. Değer döndürmek için return ifadesini kullanır ve
' yanına döndürülecek değeri yazarız. Metodlar, function olarak
' tanımlandıklarında (sub olarak da tanımlanabilirler ancak bu şekilde
' bir değer döndürmezler) döndürdükleri değerler program içinden kullanılabilir.
' Eğer metodun değer döndürmeden önce yapacağı işlem ve hesaplamalar varsa
' return ifadesinin bulunduğu satırın üstüne yazın.
Public Function Cevresi() As Integer
Return (GizliGenislik + GizliYukseklik) * 2
End Function
Public Function Alani() As Integer
Return GizliGenislik * GizliYukseklik
End Function
End Class