
OOP-Nesne Yönelimli Programlama
OOP Nedir ? (Nesne Yönelimli Programlama) ingilizcesi Object Oriented Programming, yazılım dünyasında sıklıkla kullanılan bu terim ilk olarak Alan Kay tarafından ortaya atılmıştır.Alan Key OOP’nin babası olarak bilinir.Alan Kay, OOP’nin bilgisayar sistemlerinin daha iyi bir şekilde modellenmesi için bir düşünce sistemi olduğunu söyler.
Bu konsept aslında sadece yazılım ile ilgili değildir.OOP’nin amacı tüm bilgisayar sistemlerinin birbirini etkilemeden birbirleri ile modüler bir şekilde haberleşebilmesidir.Bu haberleşmeyi sağlamak için kullanılan teknolojinin adı API teknolojisidir.Bu konuya gelecek olan yazılarımda değineceğim.
Nesne odaklı programlama, bir çok öğretmen tarafından nesne, sınıf gibi terimler arasında dolaştırılıyor ama ana konsept aslında bu değildir.Ana konsept aslında Alan Kay’in de anlatımına göre bu kadar geniş ve soyut kavramı basitleştirecek olursak ” Haberleşmek ve Mesajlaşmak” diyebiliriz.
Mesajlaşmak, bir kod parçasının başka bir kod parçasına soru sorup cevap alması diyebiliriz.
Özetle bahsedicek olursak; Bir fabrika gibi hammaddeye belirli özellikler veririz ve kalıplar çıkarırız. Sonrasında bu kalıpları kullanarak yeni nesneler üretiriz. OOP’de de nesneler vardır yani bizim kalıplarımız, biz bu kalıpları kullanarak gerekirse bazı özelliklerini değiştirip yeni nesneler üretiriz.
Yazılımcılar Neden OOP Kullanır?
1-Kod Yeniden Kullanımı:
OOP, bir kez yazılan kodun tekrar tekrar kullanılmasını sağlar. Sınıflar ve nesneler, farklı projelerde ve durumlarda yeniden kullanılabilir.
2-Kolay Anlaşılabilirlik:
OOP, yazılımı daha anlaşılır ve yönetilebilir hale getirir. Sınıflar ve nesneler, yazılımın işleyişini ve yapısını daha net bir şekilde ifade eder.
3-Hata Ayıklama ve Test Etme:
OOP, kapsülleme ve modülerlik sayesinde, hata ayıklama ve test etme süreçlerini kolaylaştırır. Her sınıf ve nesne ayrı ayrı test edilebilir ve izlenebilir.
4-Ekip Çalışmasına Uygunluk:
OOP, büyük yazılım projelerinde ekip çalışmasını destekler. Farklı geliştiriciler, farklı sınıflar üzerinde çalışabilir ve tüm sınıflar birleştiğinde uyumlu bir sistem oluşturur.
OOP Terimleri
Sınıf Nedir?
Değişkenleri ve methodları bir arada saklayan sistemdir.Değişkenler kullanacağımız verileri örneğin ad, soyad, yaş gibi verileri saklar. Metotlar bu verilerin toplanması gibi görevleri sağlayan bir sistemdir.
Nesne Nedir?
Verileri saklayan ve bu veriler üzerinde işlem yapan metodları saklayan bileşenlerdir.
Soyutlama (Abstraction)
Bir sınıfın özelliklerinin ve davranışlarının tanımlanmasına denir. Örneğin: Bir kişinin adı, soyadı, yaşı, boyu, kilosu, saç rengi gibi özellikleridir. Kişinin yetenekleri davranışları içerisinde yer alır ve metotlar ile saklanır.
Kapsülleme (Encapsulation)
Davranış ve özellikler sınıfta soyutlanır ve saklanır. Kapsülleme ile hangi özellik ve davranışın dışarıdan kullanılacağını belirleyebiliriz. Örneğin: Kişinin bizi ilgilendirmeyen kısımlarını private ederek yani saklayarak gizleyebiliriz. Bu olaya kapsülleme adı verilir.
Kapsülleme Public, Private ve Protected olarak 3 kısımda incelenir.
Public: Herkesin kullanabildiği özellik ve davranışlara verilen isimdir.
Private: Sadece kendi sınıfında kullanılan özellik ve davranışlara verilen isimdir.
Protected: Sınıf ve Miras Alınan alt sınıflarda kullanılmaya açık olanlara verilen isimdir.
Miras Alma
Alt ve üst sınıfın ortak özelliklerinden alabilme sistemine Miras Alma denir. Örneğin; Bir nesneni diğer bir nesne ile ortak özelliklerindeki verileri alabilir.
Çok Biçimlilik
Alt Sınıf ve Üst Sınıfın özelliklerinden farklı şekilde davranışlar göstermesine Çok Biçimlilik denir. Örneğin; Bir nesnenin diğer bir nesneyle ortak özellikleri olmasına rağmen farklı özelliklerininde tanımlanabilmesine denir.
Sonuç olarak, bir yazılım geliştiricisi olmayı düşünüyorsanız veya yazılım alanında ilerlemek istiyorsanız OOP yani Nesne Yönelimli Programlama konusunda bilgi sahibi olmanız gerekmektedir.
OOP’yi kullanan bir çok dil vardır ve bu diller sayesinde Nesne Yönelimli Programlamanın yapısın daha iyi bir şekilde anlayabilirsiniz.
Benim sizlere önerebileceğim Java ve Swift olabilir.Daha fazla bilgi almak için Swift yazımı okuyabilirsiniz.



