Nesne Yönelimli Programlama(OOP), yazılım mimarisini işlemler ve mantık yerine veriler veya nesneler ile oluşturan bir programlama modelidir. Var olduğu günden bu yana oyunun kurallarını yeniden yazmıştır. Hemen her yazılımcının kariyerinin her noktasında karşılaştığı bu kavram programlama için oldukça önemlidir.
Yazılımcılar, fonksiyonel programlama ile proje geliştirmenin karmaşıklığını azaltmak, daha anlaşılır ve projeye kolay adaptasyon sağlamanın yollarını aramış ve nesne yönelimli programlamanın doğmasına sebep olmuşlardır.
Yazımızdaki konu başlıkları şunlardır;
- Nesne Yönelimli Programlamaya Neden İhtiyaç Duyarız?
- Nesne Yönelimli Programlamanın Bilinmesi Gereken Prensipleri
- Popüler Nesne Yönelimli Programlama Dilleri Nedir?
Nesne Yönelimli Programlamaya Neden İhtiyaç Duyarız?
Nesne yönelimli programlamadan önce yazılımcılar, fonksiyonel programlama ile geliştirirdi projelerini. Bu durum hem çok karmaşık hem de çok vakit alıyordu. Çünkü fonksiyonel programlama üst düzey bilgi birikimine ihtiyaç duyuyordu. Geliştiriciler bir şey yapmak istediğinde her bir işlem için çok fazla detaya inmek zorundaydılar.
Modern programlama dillerinin çıkmasına sebep olan nesneye dayalı programlama; yapmak istediğimiz iş için gereken metodları paket içerisine alıp ihtiyacımız olduğunda çağırmamızı sağladı. Aynı zamanda projeye sonradan katılan yazılımcıların mevcut kodları anlamasını, projeye adapte olmasını daha kolay bir hale getirdi.
Nesne Yönelimli Programlamanın Bilinmesi Gereken Prensipleri
Soyutlama (Abstraction): En basit anlatımı, yapmak istediğimiz iş için gereken verileri ve metodları tek bir birimde toplamak ve karmaşıklığı azaltmaktır. Yani objelerin ayrıntılarıyla uğraşmaktansa, yalnızca yapmak istediğimiz iş için verilerin girdi ve çıktısını alarak daha anlaşılır ve kolay bir tasarım prensibidir. Örneğin Console.Write(”Selam”); metodu ile ekrana değer yazdırmak.
Kapsülleme (Encapsulation): Oluşturduğumuz sınıf içerisindeki verilerin, değişkenlerin ve metodların erişimini kontrol etmemizi sağlar. Sınıf içindeki metodlara dışarıdan ulaşılmasını sağlamak veya engellemek istediğimizde public, private, protected, ınternal gibi ifadelerle kontrolünü sağlarız.
Kalıtım (Inheritance): Geliştirici, mevcut olan bir nesnenin özelliklerini farklı nesneler tarafından da kullanabilmesini sağlar bu prensible. Bu duruma programlamada miras almak denir.
Çok Biçimlilik (Polymorphism): Var olan her sınıfın özelliklerini korurken alt ve üst sınıfları tam olarak kullanabilmemizi sağlar. Temel sınıftaki metodları, temel sınıftan türetilmiş bir sınıfa aktardığımızda aynı metodları alt sınıf içerisinde de kullanabiliriz. Fakat temel ve alt sınıfta da aynı metodlar bulunduğundan, temel sınıfımızdaki metodları farklı bir biçimde kullanmak istediğimizde override ve virtual özelliklerini kullanmamız gerekir.
Popüler Nesne Yönelimli Programlama Dilleri Nedir?
Java: Java, kolay öğrenme eğrisi ve sağlam güvenlik özellikleri sayesinde en eski ve en popüler nesne yönelimli diller arasında yer alır. Özellikle Android işletim sistemine uygulama geliştirmeyi düşünüyorsanız aradığınız programlama dili diyebiliriz. Bilişim sektöründe, iş hayatınızda birçok kapının kilidini java öğrenerek açmaya başlayabilirsiniz.
Python: Python öğrenmesi kolay, okuması kolay ve çok yönlüdür; yeni başlayanlar veya ne tür bir kodlama kariyeri yapmak istediklerinden emin olmayanlar için mükemmel bir seçimdir. Yapmak istediğiniz her türlü proje için bu dili kullanabilirsiniz. Anlaşılır ve takım çalışmasına tam uyumludur.
C#: Modern ve nesne odaklı olan bu programlama dili .Net teknolojisi için geliştirilmiştir. Öğrenmesi kolay ve anlaşılır olan c#, genel anlamda masaüstü ve web uygulamaları geliştirmek için kullanılır.
OOP Kritiği
Nesneye dayalı programlama birçok yazılımcı tarafından da ağır eleştiriye maruz kalmıştır. Bunun nedeni, yazılım geliştirmenin aşırı basit bir hale getirilip hesaplama ve algoritmalara çok az yer vermesidir.
Bir diğer neden ise, nesne yönelimli programlama derlenirken daha fazla zaman alabilir.