- Mesaj
- 1.506
- Çözümler
- 41
- Beğeni
- 1.216
- Puan
- 1.370
- Ticaret Puanı
- 2
Merhaba arkadaşlar,
Forum üzerinde yazılımla ilgili bir seri başlatmıştım. Yakın zamanda ona devam etme fikrim var ve kaynak araştırırken daha doğrusu planlama yaparken bu 2 kavrama ulaştım. Daha önce her ikisinide duymuştum. Ancak isim benzerliğinden dolayı her ikisininde aynı şey olduğunu düşünüyodum. Ancak araştırdığımda fark ettimki isimcek aynı gözüksede kodsal olarak değişikliklerin olduğunu ve bunlarında önemli bir faktör olduğunu gördüm öğrendim. Ve şimdi sizlere de bu iki kavramı açıklamak istiyorum.
Dört temel özelliği şunlardır:
Java, C++, C#, Python gibi diller OOP'yi destekler.
Ayrıca bu dillerde ileri seviye birisinin öğrenmesi gereken bilgilerdir. Zaten bir çok eğitime baktığınızda bu söylediğim 4 seçenek üzerine videoları mutlaka görürsünüz.
Özellikleri:
Sınıf ve nesne kavramı vardır. Ancak kalıtım (inheritance) gibi bazı OOP özellikleri yoktur.
JavaScript (ES5 ve öncesi) ve bazı basit script dilleri bu kategoriye örnek verilebilir.
Genel olarak bu şekilde aslında baktığınızda OOPnin özellikleri, OBP'nin gelişmiş hali gibi düşünebiliriz.
Şimdi gelelim bunu kodsal olarak görelim birde ;
Nesne Yönelimli Programlama (OOP) Örneği ;
Nesne yönelimli diller, nesneleri soyutlama, kalıtım ve çok biçimlilik gibi OOP prensipleriyle kullanır.
Nesne tabanlı diller, nesnelerle çalışabilir ama OOP'nin tüm gücünü sunmaz.
Tablosal görürsek eğer ;
Forum üzerinde yazılımla ilgili bir seri başlatmıştım. Yakın zamanda ona devam etme fikrim var ve kaynak araştırırken daha doğrusu planlama yaparken bu 2 kavrama ulaştım. Daha önce her ikisinide duymuştum. Ancak isim benzerliğinden dolayı her ikisininde aynı şey olduğunu düşünüyodum. Ancak araştırdığımda fark ettimki isimcek aynı gözüksede kodsal olarak değişikliklerin olduğunu ve bunlarında önemli bir faktör olduğunu gördüm öğrendim. Ve şimdi sizlere de bu iki kavramı açıklamak istiyorum.
Nesne Yönelimli Programlama (Object-Oriented Programming)
Bu bir programlama paradigmasıdır. Temelinde sınıflar (classes) ve nesneler (objects) vardır.Dört temel özelliği şunlardır:
- Encapsulation (Kapsülleme): Veriler ve işlevler bir sınıf içinde saklanır.
- Inheritance (Kalıtım): Bir sınıf başka bir sınıftan özellik/method miras alabilir.
- Polymorphism (Çok Biçimlilik): Aynı isimdeki fonksiyonlar farklı şekillerde davranabilir.
- Abstraction (Soyutlama): Gereksiz detaylar gizlenir, sadece gerekli bilgiler ortaya çıkarılır.
Java, C++, C#, Python gibi diller OOP'yi destekler.
Ayrıca bu dillerde ileri seviye birisinin öğrenmesi gereken bilgilerdir. Zaten bir çok eğitime baktığınızda bu söylediğim 4 seçenek üzerine videoları mutlaka görürsünüz.
Nesne Tabanlı Programlama (Object-Based Programming)
Bu, yalnızca nesneleri kullanan ama tam anlamıyla OOP’nin tüm özelliklerini desteklemeyen bir programlama yaklaşımıdır.Özellikleri:
Sınıf ve nesne kavramı vardır. Ancak kalıtım (inheritance) gibi bazı OOP özellikleri yoktur.
JavaScript (ES5 ve öncesi) ve bazı basit script dilleri bu kategoriye örnek verilebilir.
Genel olarak bu şekilde aslında baktığınızda OOPnin özellikleri, OBP'nin gelişmiş hali gibi düşünebiliriz.
Şimdi gelelim bunu kodsal olarak görelim birde ;
Nesne Yönelimli Programlama (OOP) Örneği ;
C++:
#include <iostream>
using namespace std;
// Sınıf tanımlanıyor
class Hayvanlar {
public:
void ses() {
cout << "Hayvan Sesleri" << endl;
}
};
// Kalıtım (Inheritance) örneği
class Kopek : public Hayvanlar {
public:
void ses() {
cout << "Köpek Havlaması" << endl;
}
};
int main() {
Hayvanlar a;
Kopek d;
a.ses(); // Hayvan Sesleri
d.ses(); // Köpek Havlaması (Polymorphism)
return 0;
}
- Sınıf tanımı var
- Kalıtım kullanıldı
- Polimorfizm örneği var (aynı fonksiyon farklı davranıyor)
JavaScript:
// Nesne oluşturuluyor
var Hayvanlar = {
ses: function() {
console.log("Hayvan Sesleri");
}
};
Hayvanlar.ses(); // Hayvan Sesleri
// Kalıtım yok, sadece nesne var
var Kopek = {
ses: function() {
console.log("Köpek Sesleri");
}
};
Kopek.ses(); // Köpek Sesleri
- Nesne oluşturulmuş
- Fonksiyon var
- Ama kalıtım yok (yani Kopek nesnesi Hayvanlar'dan türemiyor)
Nesne yönelimli diller, nesneleri soyutlama, kalıtım ve çok biçimlilik gibi OOP prensipleriyle kullanır.
Nesne tabanlı diller, nesnelerle çalışabilir ama OOP'nin tüm gücünü sunmaz.
Tablosal görürsek eğer ;
Özellikler | Nesne Yönelimli Programlama ( OOP ) | Nesne Tabanlı Programlama ( OBP ) |
Sınıf ve Nesne | Var | Var |
Kalıtım | Var | Yok |
Polimorfizm | Var | Yok |
Kapsülleme | Var | Var, ama kısıtlı |
Örnek Diller | C, C++, C#, Python, Java ... | Javascript ( ES5 ), VBScript |