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. 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.

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. Nesne tabanlı ama nesne yönelimli olmayan dillerde bu ilkeleri doğrudan uygulamak mümkün değildir.

 Nesne yönelimli olan diller 
Aşağıdaki diller nesne tabanlı olup aynı zamanda nesne yönelimlidir:
 C++ (nesne modeli Simula'ya dayanır)
 Java
 C#
 Python
 Ruby
 Smalltalk
 Eiffel
 Object Pascal
 Objective-C (nesne modeli Simula'ya dayanır)
 Visual Basic .NET
 ABAP/4
 REALbasic

 Nesne yönelimli olmayan, ancak nesne tabanlı diller 
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:
 Ada
 JavaScript (prototip tabanlıdır, sınıf tabanlı değildir)
 Visual Basic (klasik sürümler)

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

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) 
Aşağıda, aynı kavramların nesne yönelimli biçimde Python dilinde nasıl uygulandığını gösteren bir örnek verilmiştir:

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.

 Kaynakça 

 Ayrıca bakınız 
 Nesne yönelimli programlama
 Yapısal programlama
 Fonksiyonel programlama
 SOLID

Kategori:Programlama dilleri
Kategori:Nesne yönelimli programlama

Kategori:Programlama paradigmaları