Nesne tabanlı programlama dili

Nesne tabanlı programlama dili, yazılım geliştirirken Nesne (programlama) kavramını temel alan ve özellikle kapsülleme ilkesini destekleyen programlama dillerini tanımlar.[1] Ancak bu diller, kalıtım ve çok biçimlilik gibi özellikleri içermek zorunda değildir. Bu nedenle, tüm nesne yönelimli programlama dilleri aynı zamanda nesne tabanlıdır; ancak her nesne tabanlı dil, nesne yönelimli değildir.[2]

Bu ayrım özellikle yazılım geliştirme ilkeleri açısından önemlidir. Örneğin, SOLID ilkeleri yalnızca nesne yönelimli programlama bağlamında uygulanabilir; çünkü bu ilkeler, kalıtım ve çok biçimlilik gibi nesne yönelimli paradigmaların varlığını varsayar.[1] Nesne tabanlı ama nesne yönelimli olmayan dillerde bu ilkeleri doğrudan uygulamak mümkün değildir.[2]

Nesne yönelimli olan diller

[değiştir | kaynağı değiştir]

Aşağıdaki diller nesne tabanlı olup aynı zamanda nesne yönelimlidir:[3]

Nesne yönelimli olmayan, ancak nesne tabanlı diller

[değiştir | kaynağı değiştir]

Aşağıdaki diller nesne kavramını ve sınıfları desteklemekle birlikte, tam anlamıyla nesne yönelimli değildir çünkü kalıtım gibi temel özellikleri eksiktir:[2]

Aşağıda, JavaScript dilinde nesne tabanlı fakat kalıtım kullanılmayan basit bir örnek yer almaktadır:[4]

let araba = {
  marka: "Toyota",
  model: "Corolla",
  çalıştır: function() {
    console.log(this.marka + " çalıştı.");
  }
};

araba.çalıştır(); // Toyota çalıştı.

Bu örnekte nesne ve yöntem (metot) tanımı yapılmıştır; ancak kalıtım veya sınıf yapısı kullanılmadığı için nesne yönelimli değil, yalnızca nesne tabanlıdır.

Nesne yönelimli bir örnek (Python)

[değiştir | kaynağı değiştir]

Aşağıda, aynı kavramların nesne yönelimli biçimde Python dilinde nasıl uygulandığını gösteren bir örnek verilmiştir:[5]

class Araba:
    def __init__(self, marka, model):
        self.marka = marka
        self.model = model

    def çalıştır(self):
        print(f"{self.marka} çalıştı.")

araba = Araba("Toyota", "Corolla")
araba.çalıştır()  # Toyota çalıştı.

Burada hem sınıf tanımı hem de nesne yaratımı yapılmış, yani kalıtım ve diğer OOP özellikleri için zemin hazırlanmıştır.

  1. ^ a b Booch, Grady (2007). Object-Oriented Analysis and Design with Applications. Addison-Wesley. s. 45-48. ISBN 978-0-321-31336-2. 
  2. ^ a b c Sebesta, Robert W. (2012). Concepts of Programming Languages (10 bas.). Pearson. s. 520-523. ISBN 978-0-13-607347-5. 
  3. ^ Stroustrup, Bjarne (2013). The C++ Programming Language (4 bas.). Addison-Wesley. s. 50-55. ISBN 978-0321563842. 
  4. ^ "Working with Objects - JavaScript". MDN Web Docs. 10 Mayıs 2025 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Mayıs 2025. 
  5. ^ "Python Classes". Python Software Foundation. 23 Ekim 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Mayıs 2025. 

Ayrıca bakınız

[değiştir | kaynağı değiştir]