Nesne Yönelimli Programlama (Object-Oriented Programming – OOP), gerçek dünya kavramlarını yazılımda modellemek için kullanılan güçlü bir programlama yaklaşımıdır. Sınıflar (classes) ve nesneler (objects) temel yapı taşlarıdır.
OOP ile kodunuzu daha modüler, yeniden kullanılabilir ve bakımı kolay hale getirebilirsiniz.
📌 Bilgi: Bu içerikte kullanılan “nesne yönelimli programlama” (OOP), bazı kaynaklarda “nesne tabanlı programlama” ile karıştırılabilir. Ancak nesne yönelimli programlama; kalıtım, polimorfizm, kapsülleme gibi gelişmiş özellikleri de kapsayan daha geniş ve güçlü bir yaklaşımdır.
🧱 OOP’nin Temel Kavramları
1. 🔹 Sınıf (Class)
Bir nesnenin yapısını tanımlayan şablondur. Özellikler (attributes) ve davranışlar (methods) içerir.
2. 🔸 Nesne (Object)
Sınıftan oluşturulan somut örnektir. Her nesnenin kendine ait verisi olur.
3. 🔐 Kapsülleme (Encapsulation)
Verileri ve bu verilere erişimi kontrol eden fonksiyonları tek bir birim altında toplar.
4. 👨👧👦 Kalıtım (Inheritance)
Bir sınıfın, başka bir sınıfın özelliklerini ve metotlarını miras almasıdır.
5. 🔁 Çok Biçimlilik (Polymorphism)
Farklı sınıfların aynı isimli metotları farklı şekillerde uygulayabilmesidir.
💻 C# ile Kullanımı
✅ Sınıf ve Nesne Oluşturma
using System;
class Araba
{
public string Marka;
public string Model;
public Araba(string marka, string model)
{
Marka = marka;
Model = model;
}
public void Calistir()
{
Console.WriteLine($"{Marka} {Model} çalıştırılıyor.");
}
}
class Program
{
static void Main()
{
Araba arac1 = new Araba("Ford", "Focus");
arac1.Calistir();
}
}
✅ Kalıtım Örneği
using System;
class Araba
{
public string Marka;
public string Model;
public Araba(string marka, string model)
{
Marka = marka;
Model = model;
}
public void Calistir()
{
Console.WriteLine($"{Marka} {Model} çalıştırılıyor.");
}
}
class ElektrikliAraba : Araba
{
public ElektrikliAraba(string marka, string model) : base(marka, model)
{
}
public void SarjEt()
{
Console.WriteLine($"{Marka} şarj ediliyor.");
}
}
class Program
{
static void Main()
{
ElektrikliAraba arac2 = new ElektrikliAraba("Tesla", "Model S");
arac2.Calistir();
arac2.SarjEt();
}
}
🧠 Not:
publicile erişim belirteçleri kontrol edilir (kapsülleme içinprivate,protectedgibi erişim seviyeleri de kullanılabilir).: base(...)yapısı, miras alınan sınıfın kurucusunu çağırmak için kullanılır.- C# dilinde
Main()metodu, programın başlangıç noktasıdır.
🐍 Python ile Kullanımı
✅ Basit Bir Sınıf ve Nesne Oluşturma
class Araba:
def __init__(self, marka, model):
self.marka = marka
self.model = model
def calistir(self):
print(f"{self.marka} {self.model} çalıştırılıyor.")
# Nesne oluşturma
arac1 = Araba("Toyota", "Corolla")
arac1.calistir()
✅ Kalıtım Örneği
class ElektrikliAraba(Araba):
def sarjEt(self):
print(f"{self.marka} şarj ediliyor.")
arac2 = ElektrikliAraba("Tesla", "Model 3")
arac2.calistir()
arac2.sarjEt()
🌐 JavaScript ile Kullanımı
✅ Class ve Object Oluşturma
Araba {
constructor(marka, model) {
this.marka = marka;
this.model = model;
}
calistir() {
console.log(`${this.marka} ${this.model} çalıştırılıyor.`);
}
}
const arac1 = new Araba("Renault", "Clio");
arac1.calistir();
✅ Kalıtım
class ElektrikliAraba extends Araba {
sarjEt() {
console.log(`${this.marka} şarj ediliyor.`);
}
}
const arac2 = new ElektrikliAraba("BMW", "i3");
arac2.calistir();
arac2.sarjEt();
💡 OOP’nin Avantajları
| Avantaj | Açıklama |
|---|---|
| Modülerlik | Kod parçalara bölünür, okunabilirlik artar |
| Yeniden Kullanılabilirlik | Sınıflar başka projelerde yeniden kullanılabilir |
| Kolay Bakım ve Genişletme | Yeni özellikler mevcut koda zarar vermeden eklenebilir |
| Gerçek Dünya ile Benzerlik | Kodlama süreci daha sezgisel olur |
❓ Ne Zaman OOP Kullanmalıyız?
- Gerçek dünya varlıklarının modellendiği projelerde (örneğin: öğrenci, banka hesabı, ürün)
- Büyük ve karmaşık projelerde
- Uzun vadeli bakım ve genişletme gerektiren sistemlerde
🎯 Sonuç
Nesne yönelimli programlama, yazılım geliştiricilerin daha düzenli, ölçeklenebilir ve profesyonel kodlar yazabilmesini sağlar. Python ve JavaScript gibi popüler dillerde OOP desteği, bu yapıyı günlük projelerde uygulamayı kolaylaştırır.






















