Blog C/C++ C# Eğitim Java PHP Programlama Dilleri Programlama Dilleri Eğitim Python Son Dakika

NESNEYE YÖNELİK PROGRAMLAMA

Günümüzde gelişen teknolojiyle birlikte programlamaya yönelik ihtiyaçlar da artmaya başladı. Öyle ki geçmiş yıllarda birçok insan için karmaşık gelen kodlar, artan yazılım talebiyle Nesneye Yönelik Programlama (Object Orianted Programming / OOP)’yı ortaya çıkardı. Nedir bu OOP?

Nesneye Yönelik Programlama (OOP), 1970’li yılların başında ortaya çıkmış ve o dönemin bilgisayar programlama alanlarındaki sorunlara çözüm olarak geliştirilmiştir.

OOP, yazılım geliştirmek için ortaya konmuş bir yöntemdir. Günümüzde çok çeşitli programlama dilleri olmasıyla en popüler diller, sınıflar üzerine kurulmuştur. Bu dillerde nesneler, sınıfların birer üyesidir.

En popüler Nesneye Yönelik Programlama dillerinden bazıları Python, C#, C++, Objective-C, Java, Delphi Swift’dir.

Bunların içinde popülaritesi en yüksek olan C++, 1980’li yıllarda ortaya çıkmıştır. C++ olarak adlandırdığımız dil, C diline sınıf (class) özelliği eklenerek elde edilmiş bir “nesneye yönelik programlamadır”. C dilinin bir versiyonu diyebiliriz.

NESNEYE YÖNELİK PROGRAMLAMANIN ÖZELLİKLERİ

Yukarıdaki şemada Nesne Yönelimli Programlamanın dört temel özelliğini görüyorsunuz, bu özellikleri daha ayrıntılı inceleyelim.

SOYUTLAMA (ABSTRACTION)

Soyutlama denilince aklımıza zihinde canlandırma işlemi geliyor. OOP’de soyutlama, karmaşıklığı gidermek için kullanılır.

Yeryüzünde görmüş olduğumuz her şey birer nesnedir. Programlama açısından nesneler, bir varlığı nitelendirme biçimidir. Örneğin, şehir bir nesnedir.

Şehri programlama içerisinde temsil etmek istersek ilk adım olarak bu şehrin özelliklerini belirtmemiz gerekir. Yani,

-Şehrin nüfusu,

-Şehrin rakımı,

-İklimi,

-Posta kodu

gibi nitelikler, şehri tanımlamak için akla gelen birkaç özelliktir. Bu anlamda nesneler, özellikleri ve metotları ile temsil edilebilir.

OOP dilleri, soyutlamayı sınıf (class) yapısı ile gerçekleştirir. Sınıf ile nesnelere ait özellikleri ve metotları tanımlayabiliriz.

PAKETLEME (ENCAPSULATION)

Metot ve özellik bakımından adlandırdığımız bu işlemleri, nesnelerin özelliklerini açıklamada kullanırız. Bunu:

NESNE = VERİ + METOT

olarak açıklayabiliriz. Veriler (özellikler) ve metotlar (bu veri üzerinde işlem yapan kod) birlikte bulunurlar ve nesneleri oluştururlar.

ÇOK BİÇİMCİLİK (POLYMORPHISM)

Belli bir işlemin birçok nesne tarafından kullanılmasıdır. Bir sınıf içerisindeki tüm nesneler aynı metoda sahip olabilir fakat her bir alt sınıf için aynı olan bu metotlar, her bir alt sınıfa ait nesne için farklı biçimde çalışacaktır.

MİRAS ALMA (INHERITANCE)

Nesnelerin bir başka nesneden etkilenerek kullanılmasıdır. Bu sayede miras alma özelliğine sahip programlama dilinde nesneler sınıflarından türetilen, bir alt sınıfa ait nesneler; türetildikleri sınıfın özelliklerini ve metotlarını birebir alır.

NESNELER VE SINIFLAR

Sınıf, belli bir tür nesnenin şeklini, davranışını vb. özelliklerini tanımlamak için kullanılan şablondur. Bir sınıftan türetilmiş nesne ise o sınıfa ait örnek olarak tanımlanabilir.

Örneğin “Şehirler” bizim sınıfımız olsun. Bu sınıftaki her şehir bizim nesnemizdir. Bu nesnelerin nüfus, rakım, posta kodu gibi özellikleri mevcuttur. Gelin bu örneği bir ekte gösterelim.

Ekte bir sınıf görülmektedir. “Şehir” sınıfı için şehirlerin adı, nüfusu, rakımı, posta kodu nesneleri eklenmiştir.

Ekte nesne örneği görülmektedir. Sınıfta belirtilen verilere göre bilgiler eklenmiştir.

Programcılık aslında zannedildiğinden daha karmaşık ve güçtür. Bu yüzden nesneye yönelik programlama bizlere yapmış olduğumuz projeleri gerçek hayatla yakından ilişkilendirme fırsatı sunar bu sayede hem daha anlaşılır daha kolay hem de çalışması keyifli bir hal alır.

 

 

KAYNAKÇA

https://gelecegiyazanlar.turkcell.com.tr/konu/egitim/swift-ile-ios-101/nesneye-yonelik-programlama-object-oriented-programming

https://tr.wikipedia.org/wiki/Nesne_yönelimli_programlama

https://bidb.itu.edu.tr/seyir-defteri/blog/2019/02/05/object-oriented-programming

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir