OOP’nin Temelleri

Emre Acar
Kodcular
3 min readDec 15, 2022

--

Nesne yönelimli programlama, veri parçalarını ve bu verilerle ilgili davranışı, bir programcı tarafından tanımlanan, sınıf adı verilen bir dizi “plan”dan oluşturulan, nesneler adı verilen özel paketlere sarma kavramına dayanan bir paradigmadır.

Nesneler, sınıflar

Kedileri sever misin? Umarım anlamışsındır çünkü OOP kavramlarını çeşitli kedi örnekleriyle açıklamaya çalışacağım.

Bu bir UML sınıf diyagramıdır.

Diyelim ki Maça adında bir kediniz var. Maça, Kedi sınıfının bir örneği olan bir nesnedir. Her kedinin bir çok standart özelliği vardır: isim, cinsiyet, yaş, ağırlık, renk, en sevdiği yiyecek vb. Bunlar sınıfın alanlarıdır.

Tüm kediler de benzer şekilde davranır: nefes alırlar, yemek yerler, koşarlar, uyurlar ve miyavlarlar. Bunlar sınıfın yöntemleridir. Toplu olarak, alanlara ve yöntemlere kendi sınıflarının üyeleri olarak başvurulabilir.

Nesnenin alanlarında depolanan verilere genellikle durum olarak başvurulur ve nesnenin tüm yöntemleri davranışını tanımlar.

Nesneler, sınıf örnekleridir.

Arkadaşınızın kedisi Pamuk da Kedi sınıfının bir örneğidir. Maça ile aynı özelliklere sahiptir. Fark, bu niteliklerin değerlerindedir: cinsiyeti dişidir, farklı bir renge sahiptir ve daha hafiftir.

Dolayısıyla bir sınıf, o sınıfın somut örnekleri olan nesnelerin yapısını tanımlayan bir plan gibidir.

Sınıf hiyerarşileri

Bir sınıftan bahsettiğimizde her şey yolunda. Doğal olarak, gerçek bir program birden fazla sınıf içerir. Bu sınıflardan bazıları, sınıf hiyerarşileri halinde organize edilebilir. Bunun ne anlama geldiğini öğrenelim.

Diyelim ki komşunuz Fino adında bir köpek sahiplenmiş. Köpekler ve kediler arasında birçok ortak özellik bulunmaktadır, örneğin isim, cinsiyet, yaş ve renk. Bu özellikler hem köpeklerde hem de kedilerde görülebilir. Köpekler de kediler gibi nefes alabilir, uyuyabilir ve koşabilir. Bu ortak özellikleri ve davranışları göz önüne alarak, “Hayvan” adlı temel bir sınıf tanımlayabiliriz.

Bir üst sınıf, bir alt sınıftaki nitelikleri ve davranışları tanımlayan bir sınıftır. Alt sınıflar, ebeveynlerinden durum ve davranışları alır. Örneğin, Kedi sınıfı miyavlama yöntemine sahip olabilirken, Köpek sınıfı havlama yöntemine sahip olabilir.

Bir sınıf hiyerarşisinin UML diyagramı. Bu şemadaki tüm sınıflar, Hayvan sınıfı hiyerarşisinin parçasıdır.

İlgili bir iş gereksinimimiz olduğunu varsayarsak, daha da ileri gidebilir ve tüm canlı Organizmalar için daha genel bir sınıf çıkarabilir ve bu, Hayvanlar ve Bitkiler için bir üst sınıf haline gelebilir. Böyle bir sınıf piramidi bir hiyerarşidir. Böyle bir hiyerarşide, Kedi sınıfı hem Hayvan hem de Organizma sınıflarından her şeyi devralır.

Bir UML diyagramındaki sınıflar, içeriklerinden çok ilişkilerini göstererek daha basit hale getirebilir.

Alt sınıflar, üst sınıflardan devraldıkları yöntemlerin davranışını geçersiz kılabilir. Bir alt sınıf, varsayılan davranışı tamamen değiştirebilir veya onu bazı ekstra şeylerle geliştirebilir.

--

--