Bölüm 3: Nesne Yönelimli Programlama (OOP)
Nesne Yönelimli Programlama veya bilinen adıyla OOP, programlama dünyasında büyük bir projeyi daha yönetilebilir parçalara ayıran bir yaklaşımdır. Bu bölümde, Crystal dilinde OOP'nin nasıl işlediğini sade, anlaşılır ve açıklayıcı bir dille ele alacağız.
3.1 Sınıflar ve Nesneler
OOP'nin temel yapı taşı "sınıf" kavramıdır. Sınıflar, bir nesnenin özelliklerini (değişkenler) ve yeteneklerini (fonksiyonlar) tanımlayan şablonlardır. Bir sınıfın örneğini alarak bir "nesne" yaratabiliriz, bu da o sınıfın bir örneğini temsil eder.
class Kisi
property isim : String
property yas : Int32
def initialize(@isim, @yas)
end
def selam_ver
puts "Merhaba, ben #{@isim}"
end
end
ahmet = Kisi.new("Ahmet", 30)
ahmet.selam_ver
3.2 Miras Alma
Miras alma, bir sınıfın başka bir sınıfın özelliklerini "miras" almasını sağlar. Bu, kodu yeniden kullanmamızı ve düzenli bir şekilde organize etmemizi sağlar.
class Ogrenci < Kisi
property not : Int32
def initialize(@isim, @yas, @not)
super(@isim, @yas)
end
end
ali = Ogrenci.new("Ali", 20, 90)
ali.selam_ver
3.3 Polimorfizm (Polymorphism)
Polimorfizm, farklı sınıfların aynı arayüzü veya metodları kullanmasını sağlar. Bu, farklı sınıfların aynı metodu farklı bir şekilde uygulamasını mümkün kılar.
class Ogretmen < Kisi
def selam_ver
puts "Merhaba, ben öğretmen #{@isim}"
end
end
ayse = Ogretmen.new("Ayşe", 40)
ayse.selam_ver
3.4 Kapsülleme (Encapsulation)
Kapsülleme, bir sınıfın iç detaylarını gizleyerek sadece belirli metod ve özelliklerin dış dünyaya açık olmasını sağlar. Bu, daha güvenli ve hata tolere edilebilir kodlar yazmamıza olanak tanır.
class Muhasebeci < Kisi
@maas : Int32 = 0
def maas_ata(maas : Int32)
@maas = maas
end
def maas_goster
puts "#{@isim} adlı kişinin maaşı: #{@maas}"
end
end
mehmet = Muhasebeci.new("Mehmet", 50)
mehmet.maas_ata(5000)
mehmet.maas_goster
3.5 Sonuç
Bu bölümde, Nesne Yönelimli Programlama'nın temel prensiplerini — sınıflar, nesneler, miras alma, polimorfizm ve kapsülleme — Crystal dilinde nasıl kullanacağınızı öğrendiniz. Şimdi elde ettiğiniz bu bilgilerle daha organize, yeniden kullanılabilir ve etkili programlar yazabilirsiniz.
Last updated