Yükleniyor...

ES6 Sınıfları

ES6 Sınıfları (ES6 Classes), JavaScript’te nesne yönelimli programlamayı (Object-Oriented Programming - OOP) daha anlaşılır ve yapılandırılmış bir şekilde kullanmamızı sağlayan modern bir özelliktir. Öncesinde geliştiriciler, fonksiyon konstrüktörleri ve prototip zinciri (prototype chain) ile nesneleri tanımlamak zorundaydı; bu ise kodun okunabilirliğini ve bakımını zorlaştırıyordu. ES6 sınıfları ile, nesnelerin nasıl oluşturulduğu, metodların nasıl paylaşıldığı ve mirasın nasıl uygulanacağı açık bir şekilde ifade edilebilir.
Kişisel web sitelerinde (Personal Website), sınıflar kullanıcı profilleri veya proje portföylerini modellemek için kullanılabilir. Bloglarda (Blog), makaleler ve yazarlar için sınıflar tanımlamak, içerik yönetimini kolaylaştırır. E-ticaret sitelerinde (E-commerce), ürünler, siparişler ve sepet yönetimi sınıflarla modellenebilir. Haber sitelerinde (News Site), haber içeriklerini, kategorileri ve kullanıcı yorumlarını yönetmek için sınıflar kullanılabilir.
Bir sınıfı, bir evin mimari planı gibi düşünebiliriz: plan, evin yapısını belirler; her nesne (instance) ise bu plan doğrultusunda inşa edilmiş bağımsız bir oda gibidir. Sınıflar sayesinde kodumuzu düzenli, tekrar kullanılabilir ve bakımı kolay hale getiririz. Bu derste, ES6 sınıflarının temellerini, constructor (yapıcı) fonksiyonları, metodlar ve miras (inheritance) kavramlarını öğrenecek, gerçek dünya senaryolarında uygulamalarını göreceksiniz.

Temel Örnek

javascript
JAVASCRIPT Code
// Define a simple ES6 class
class Kullanici {
constructor(ad, email) { // constructor initializes instance properties
this.ad = ad;
this.email = email;
}
selamla() { // method shared across all instances
return `Merhaba, ${this.ad}!`;
}
}

const kullanici1 = new Kullanici("Ahmet", "[[email protected]](mailto:[email protected])");
console.log(kullanici1.selamla()); // "Merhaba, Ahmet!"

Bu örnekte Kullanici adında bir sınıf tanımladık. class anahtar kelimesi sınıf tanımı için kullanılır. constructor metodu, yeni bir nesne oluşturulduğunda otomatik olarak çağrılır ve nesneye ait özellikleri (ad, email) başlatır. this anahtar kelimesi, mevcut örneği temsil eder.
salamla() metodu, sınıf içinde tanımlanan ve tüm nesneler tarafından paylaşılan bir metoddur; bu sayede bellekte verimli bir kullanım sağlanır. kullanici1 nesnesini new Kullanici(...) ile oluşturup selamla() metodunu çağırdığımızda, kişiselleştirilmiş bir selamlama mesajı elde ederiz.
Bu yapı, blog veya haber sitelerinde kullanıcı profillerini modellemek için idealdir. Sınıf, bir şablon (template) iken, oluşturulan nesneler (instances) bu şablonun somut örnekleridir.

Pratik Örnek

javascript
JAVASCRIPT Code
// Class for managing products in an e-commerce site
class Urun {
constructor(ad, fiyat) {
this.ad = ad;
this.fiyat = fiyat;
}
goster() { // method to display product details
return `${this.ad} fiyatı ${this.fiyat} TL.`;
}
}

const urun1 = new Urun("Laptop", 12000);
const urun2 = new Urun("Kulaklık", 500);

console.log(urun1.goster()); // "Laptop fiyatı 12000 TL."
console.log(urun2.goster()); // "Kulaklık fiyatı 500 TL."

ES6 sınıfları ile çalışırken bazı en iyi uygulamalar şunlardır:

  1. Modern sözdizimi (class, extends, super) kullanarak kodun okunabilirliğini artırın.
  2. Constructor içinde geçersiz veri girişlerini kontrol edin, örneğin fiyatın pozitif olduğundan emin olun.
  3. Metodları constructor dışında tanımlayın; böylece bellek kullanımı optimize edilir.
  4. Miras (inheritance) ile kod tekrarını azaltın, örneğin BlogPost sınıfını temel alıp VideoPost ve ImagePost türevleri oluşturabilirsiniz.
    Yaygın hatalar arasında new anahtar kelimesini kullanmayı unutmak, metodları yanlışlıkla constructor içine tanımlamak ve this anahtar kelimesini callback fonksiyonlarda hatalı kullanmak bulunur. Debug için console.log(this) ve instanceof kullanılabilir. Sınıfları modüller halinde ayırmak, uygulamanın ölçeklenebilirliğini ve bakımını kolaylaştırır.

📊 Hızlı Referans

Property/Method Description Example
constructor Nesnenin özelliklerini başlatır class A { constructor(x){ this.x=x; } }
this Mevcut örneği temsil eder this.ad = "Ahmet";
method() Prototipte depolanan fonksiyon selamla(){ return "Merhaba!"; }
extends Başka bir sınıftan miras almak için class B extends A {}
super Üst sınıf constructor veya metodunu çağırır super(ad);
static Sınıfa ait statik metod static bilgi(){ return "Bilgi"; }

Bu derste ES6 sınıflarının temel kavramlarını, constructor ve metod kullanımını, örneklerle nesne oluşturmayı ve mirası öğrendiniz. Sınıflar sayesinde kodunuzu yapılandırmak, organize etmek ve tekrar kullanılabilir hale getirmek mümkün olur.
Kişisel web siteleri, bloglar, e-ticaret ve haber sitelerinde kullanıcı, ürün ve içerik yönetimi için sınıfları kullanabilirsiniz. Bu kavramlar HTML DOM manipülasyonu ve backend iletişimi ile doğrudan bağlantılıdır.
Önerilen sonraki konular, statik metodlar, ileri düzey miras kullanımı ve Singleton veya Factory gibi tasarım desenleridir. Pratik olarak, küçük bir e-ticaret veya blog modülü oluşturarak kullanıcı, ürün ve içerik sınıflarını deneyebilirsiniz. Kodun modüller halinde organize edilmesi, projenin ölçeklenebilirliğini ve sürdürülebilirliğini artırır.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu konudaki anlayışınızı pratik sorularla test edin.

3
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek