OOP (Object Orianted Programming), bir yazılım programını, nesnelerin tek tek örneklerini oluşturmak için kullanılan basit, yeniden kullanılabilir kod taslakları (genellikle sınıflar olarak adlandırılır) halinde yapılandırmak için kullanılır. Çoğunlukla JavaScript, C++ , Python ve Java yazılım dillerinde çokça kullanılır. Daha kolay anlaşılması için aşağıdaki örneğe bakalım;
Örneğin Car adında bir sınıfımız var. Bu sınıfın içerisinde bir çok özellik mevcut. Örneğin renk, marka ve model gibi özellikler var. Özelliklerin yanı sıra yanında repaint() adında bir metodumuz da var. Bu sınıfı biz herhangi bir yerde tekrardan kullanmak istediğimizde OOP yardımımıza koşuyor. OOP tekniği sayesinde spagetti kod yazmaktan kaçınıyoruz. Daha anlaşılır ve kolay bir şekilde benzer kodları tekrar yazmaktan uzaklaşıyoruz.


Gerçek hayattan örnek vererek anlatayım. Büyükçe bir evcil hayvan barınağınız var. İçerisinde yüzlerce evcil köpek mevcut. Tüm hayvanların isimlerini, yaşlarını ve katıldıkları günleri takip etmeniz gerekiyor. Tüm bu verileri kolay bir şekilde nasıl takip edersiniz?
Tabii ki her köpek için yüzlerce satır kod yazmak anlamsız ve verimsiz olur.
Köpeklerimizin adları Rufus ve Flffy olsun. Aşağıdaki 2 örnek gibi yüzlerce satır kod olduğunu hayal edin. Ne kadar karmaşık olduğunu farkedeceksiniz.

OOP modellemesini kullanmadan önce sınıf (Class) yapısını kurmamız gerek. Sınıf yapısını kurmak için benzer bilgileri gruplandırmamız gerek. Bunu yapmamız kodu daha kısa hale getirirken hata çıkması halinde daha kolay ve çabuk müdahale etmemize yardımcı olur. Şimdi sınıfı oluştururken örneği de dikkate alırken sırayla şu adımları gerçekleştirelim.
Sınıflandırmaları tanımladık. Sırada Nesne var. Nesnelerin bir çok özellikleri vardır. Bunlardan en çok karşılaşacağımız 4 tane temel özellik var. Bunlar;
Bir sınıfın özelliklerinin tanımlanmasıdır. Az önceki örnekteki köpeklerin isimleri, doğum tarihleri, yaşları ve kayıt tarihleri gibi değerlerdir.
Özellikler sınıfta soyutlanır ve saklanır. Kapsülleme ile hangi özelliklerin dışarıdan erişilebileceğini veya kullanılabileceğini belirleyebiliriz. Kapsülleme Public (açık), Private (gizli) ve Protected (korunmuş) olarak 3 kısımda incelenir.

Alt sınıf ve üst sınıfta bulunan ortak özellikleri kullanabilen, alabilen sisteme Miras Alma ( Inheritance) denir. Örneğin; Bir nesneni diğer bir nesne ile ortak özelliklerindeki verileri alabilir.
Alt sınıf ve üst sınıftaki özelliklerin, verilerin farklı şekilde tepkiler vermesine Çok Biçimlilik (Polymorphism) denir. Örnek verecek olursak, bir nesnenin diğer bir nesne ile ortak bir özelliği bulunmasına karşın, aynı nesnelerin farklı özelliklerle de tanımlanabilmesine denir.
Günümüzde bir çok programlama dili OOP (Object orianted programming) kullanır. Ancak en aktif ve en çok kullananları listelememiz gerekirse,

Kullananlar arasında en popüler olanlarıdır.
OOP (Object orianted programming) bilinmesi yazılım dünyasında en büyük faydalardan biridir. Her yazılımcının öğrenmesi gerekmez ancak büyük fayda sağlar. Kariyeriniz yazılım geliştirme üzerineyse öğrenmeniz sizin açınızdan ve ekip arkadaşlarınız açısından büyük avantaj sağlayacaktır.
Bu yazımda OOP (Object orianted programming) nedir, hangi faydaları sağlar, kimlerin öğrenmesi gereklidir, bölümleri nelerdir gibi sorulara cevap verdik. Diğer yazımızda görüşmek üzere.