Ritim İstanbul A5 Blok No:46, D:112, 34846 Maltepe/İstanbul

Nesne yönelimli programlama (OOP) nedir? Örnekleri nelerdir?

Yazılım mühendisliği okuyan öğrenciler veya yazılıma ilgi duyan hemen hemen tüm potansiyel yazılımcılar genel olarak programlama dilleri konusunda karmaşık fikirlere sahiptir. Programlama dillerini tasnif eden alt sınıflar karmaşık fikirleri bir nebze olsun ortadan kaldırmaya yardımcı olur.

Geçtiğimiz yetmiş yıl boyunca programlama dilleri büyük oranda genişledi. Bu zenginlik programlama dillerine çeşitli sınıflandırmalar yapılması zorunluluğunu ortaya çıkardı. Yazılım hizmet ve ürünlerinin çeşitlenmesi nedeniyle programlama dilleri spesifik alanlara hitap etmeye başladı. Örneğin SQL ve NoSQL veritabanı yönetimi amaçlı kullanıldı. Peki neden bazı programlama dilleri nesne yönelimli dil (object-oriented languages) olarak tanımlanırken bazıları zorunlu dil veya fonksiyonel dil olarak tanımlanıyor?

- ADT Çözümleri -
Yönetilen Hizmetler Görseli
Advanced Dynamics Teknoloji'de işletmeler için dış kaynaktan hizmet modeliyle Yönetilen Hizmetler çözümleri sunuyoruz.

Programlama dilleri esasında yapay olarak üretilmiş dillerdir ve bu nedenle insanların konuştukları dillerin organik gelişiminden farklı bir yol benimser. Her bir programlama dilinin bir tasarım felsefesi ve söz dizimi vardır.

Nesne yönelimli dil nedir?

Nesne yönelimli programlama (İngilizce’de kısaca OOP kavramıyla ifade edilir), yazılım tasarımını işlevler ve mantıktan ziyade veriler veya nesneler etrafında organize eden bir bilgisayar programlama modelidir. Bir nesne, benzersiz niteliklere ve davranışa sahip bir veri alanı olarak tanımlanabilir.[1]

“Veya World of Warcraft gibi devasa bir çevrimiçi çok oyunculu oyunda avatarınızın performansını artırmak için bir bot oluşturuyor olabilirsiniz. Bu durumda, muhtemelen davranış sınıflarını ifade etmeye yardımcı olacak nesne yönelimli bir uzantıya sahip Lua gibi bir betik dili kullanıyorsunuzdur.”[2]

Nesne yönelimli programla dilleri sınıf (classes) kavramına dayanır. Sınıflar, soyut veri türlerine benzer ve bir örnek üzerinde gerçekleştirilebilecek işlemlerle birlikte sınıfın bir örneğini (veya bir nesnesini) temsil etmek için gereken veri yapılarının tanımlarından oluşur. Smalltalk nesne yönelimli bir dilin en zengin örneğidir. C++ ve Eiffel gibi daha yeni diller emir kiplidir, ancak nesne yönelimli sınıfları barındırır. Bu türden programlama dilleri bir sınıf örneğiyle etkileşimi, katı bir dizi işlemle sınırlamak için olanaklar içerirler.[3]

Nesne yönelimli bir programın organizasyonu, aynı zamanda, projelerin gruplara ayrıldığı işbirlikçi geliştirme için yöntemi fayda sağlar. OOP’nin ek faydaları arasında kodun yeniden kullanılabilirliği, ölçeklenebilirliği ve verimliliği yer alır.

Nesne yönelimli dillerin yapısı

  • Sınıflar (Classes): Sınıflar, bireysel nesneler, nitelikler ve yöntemler için plan görevi gören kullanıcı tanımlı veri türleridir.
  • Nesneler (Objects): Nesneler, özel olarak tanımlanmış verilerle oluşturulan bir sınıfın örnekleridir. Nesneler, gerçek dünyadaki nesnelere veya soyut bir varlığa karşılık gelebilir. Sınıf başlangıçta tanımlandığında, tanımlanan tek nesne tanımdır.
  • Yöntemler (Methods): Yöntemler, bir nesnenin davranışlarını tanımlayan bir sınıf içinde tanımlanan işlevlerdir. Sınıf tanımlarında yer alan her yöntem, bir örnek nesneye başvuru ile başlar. Ek olarak, bir nesnede bulunan alt rutinlere örnek yöntemler denir. Programcılar, yeniden kullanılabilirlik veya işlevselliği bir seferde bir nesne içinde kapsüllenmiş halde tutmak için yöntemler kullanır.
  • Öznitelikler (Attributes): Nitelikler sınıf şablonunda tanımlanır ve bir nesnenin durumunu temsil eder. Nesneler, nitelikler alanında depolanan verilere sahip olacaktır. Sınıf nitelikleri sınıfın kendisine aittir.

Nesne yönelimli dillere örnekler nelerdir?

Simula ilk nesne yönelimli programlama dili olarak kabul edilirken günümüzde OOP ile birlikte birçok başka programlama dili kullanılmaktadır. Ancak bazı programlama dilleri OOP ile diğerlerinden daha iyi eşleşir. Örneğin, saf OOP dilleri olarak kabul edilen programlama dilleri, her şeyi nesne olarak ele alır. Diğer programlama dilleri öncelikle OOP için tasarlanmıştır, ancak bazı prosedürel süreçler dahil edilmiştir.

Nesne yönelimli programlama dilleri için en iyi örnekler Ruby, Scala, JADE ve Emerald’dır. Başlangıçta nesne yönelimli olarak tasarlanan diğer dillere ise Java, Python ve C++ örnek olarak gösterilebilir.

Yazılım öğrenmek için nesne yönelimli bir dil tercih etmek doğru mu?

Programlama dillerinin popülerliği belki biraz kafa karıştırıcı görünebilir. Yazılımcılar, iyi bir yazılım eğitimi alınması için nesne yönelimli bir dilin tercih edilmesinde fayda görüyorlar.

Referanslar

Friedman, D. P., & Wand, M. (2008). Essentials of programming languages. Books24x7.com.

Morris, D., & Tamm, B. G. (Eds.). (1993). Concise Encyclopedia of Software Engineering. Elsevier Science & Technology Books.

Dipnotlar


[1] “What is Object-Oriented Programming (OOP)? – TechTarget.” https://www.techtarget.com/searchapparchitecture/definition/objectorientedprogrammingOOP. Erişim tarihi: 5 Ağu. 2022.

[2] (Friedman & Wand, 2008, s. xii)

[3] (Morris & Tamm, 1993, s. 4)

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...

React ‘hook’ nedir ve ne için kullanılır?

React hook, React JavaScript kitaplığındaki bir özelliktir. Hook'lar, sınıf bileşenlerine ihtiyaç duymadan, fonksiyon bileşenlerinde durum (state) ve diğer React özelliklerini kullanmaya olanak tanır. İlk...

IPv4 ve IPv6 nedir? Aralarındaki farklar nelerdir?

Her gün internete bağlanıyoruz, ancak teknik olarak internete nasıl bağlandığımızla ilgili bir fikriniz var mı? İnternet, modern yaşamın ayrılmaz bir parçası haline geldi ve...

Daha fazla blog içerik

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...