crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
1. Sınıf (Class) Nedir?
Sınıfı bir mimari plan veya bir kalıp gibi düşünebilirsiniz. Tek başına bir ev değildir, ama bir evin nasıl inşa edileceğine dair tüm kuralları (özellikler ve davranışlar) içerir. Bu kalıptan üretilen her bir somut örneğe ise Nesne (Object) veya Instance denir.
JavaScript:
class Araba {
// Nesne oluşturulduğunda ilk çalışan bölüm: Constructor
constructor(marka, model, yil) {
this.marka = marka; // Özellik (Property)
this.model = model;
this.yil = yil;
}
// Davranış (Method)
ozetBilgi() {
return `${this.yil} model ${this.marka} ${this.model}`;
}
}
// Kalıptan yeni bir nesne türetelim
const arabam = new Araba("Tesla", "Model 3", 2023);
console.log(arabam.ozetBilgi()); // 2023 model Tesla Model 3
2. Kalıtım (Inheritance)
Kalıtım, bir sınıfın özelliklerini ve metodlarını başka bir sınıfa aktarmasını sağlar. Bu, kod tekrarını önlemenin en güçlü yoludur. extends anahtar kelimesiyle yapılır.
[]Parent (Ebeveyn) Sınıf: Genel özellikleri tutar.
[]Child (Çocuk) Sınıf: Ebeveynden her şeyi miras alır ve kendine has özellikler ekler.- super(): Üst sınıfın constructor'ını çağırmak için kullanılır.
JavaScript:
class Hayvan {
constructor(ad) {
this.ad = ad;
}
sesCikar() {
console.log(${this.ad} ses çıkarıyor.);
}
}
class Kopek extends Hayvan {
constructor(ad, cins) {
super(ad); // Üst sınıfın (Hayvan) constructor'ını çalıştırır
this.cins = cins;
}
// Metod Ezme (Method Overriding)
sesCikar() {
console.log(`${this.ad} havlıyor!`);
}
}
const boncuk = new Kopek("Boncuk", "Golden");
boncuk.sesCikar(); // Boncuk havlıyor!
3. Getters ve Setters
Bazen bir özelliğe erişirken veya onu değiştirirken araya bir kontrol mekanizması koymak isteriz. Bunun için get ve set anahtar kelimelerini kullanırız.
JavaScript:
class Kullanici {
constructor(ad) {
this._ad = ad; // _ işareti genellikle "özel/gizli" olduğunu belirtmek için kullanılır
}
get ad() {
return this._ad.toUpperCase(); // Adı hep büyük harfle al
}
set ad(yeniAd) {
if (yeniAd.length < 3) {
console.error("İsim çok kısa!");
return;
}
this._ad = yeniAd;
}
}
4. Statik Metodlar (Static Methods)
Bir metodun nesneye değil, doğrudan sınıfın kendisine ait olmasını istiyorsak static kullanırız. Bu metodlara new ile oluşturulan nesneler üzerinden değil, direkt sınıf ismiyle erişilir.
JavaScript:
class Matematik {
static topla(a, b) {
return a + b;
}
}
console.log(Matematik.topla(10, 20)); // Nesne oluşturmadan kullandık
OOP'nin 4 Temel Taşı
| Terim | Açıklama |
|---|---|
| Kapsülleme (Encapsulation) | Veriyi ve metodları bir arada tutup, dışarıdan erişimi kısıtlama. |
| Soyutlama (Abstraction) | Sadece gerekli olan detayları gösterip karmaşıklığı gizleme. |
| Kalıtım (Inheritance) | Bir sınıfın başka bir sınıfın özelliklerini devralması. |
| Çok Biçimlilik (Polymorphism) | Aynı isimli metodun farklı sınıflarda farklı işler yapması. |
Sonuç
Sınıflar ve OOP yapısı, spagetti koda dönüşmeye meyilli büyük projeleri bir mimar titizliğiyle inşa etmenizi sağlar. Başlarda biraz "fazla kuralcı" gelse de, projeniz büyüdükçe bu yapının sağladığı düzen ve hata yönetimi koltuğunuzu sağlamlaştıracaktır.