En İyi Sorular
Zaman Çizelgesi
Sohbet
Bakış Açıları
Nesne tabanlı programlama dili
Vikipedi'den, özgür ansiklopediden
Remove ads
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]
Remove ads
Nesne yönelimli olan diller
Aşağıdaki diller nesne tabanlı olup aynı zamanda nesne yönelimlidir:[3]
- 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
Özetle
Bakış açısı
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]
- 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:[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)
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.
Remove ads
Kaynakça
Ayrıca bakınız
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads