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// 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// 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:
- Modern sözdizimi (
class
,extends
,super
) kullanarak kodun okunabilirliğini artırın. - Constructor içinde geçersiz veri girişlerini kontrol edin, örneğin fiyatın pozitif olduğundan emin olun.
- Metodları constructor dışında tanımlayın; böylece bellek kullanımı optimize edilir.
- Miras (inheritance) ile kod tekrarını azaltın, örneğin
BlogPost
sınıfını temel alıpVideoPost
veImagePost
türevleri oluşturabilirsiniz.
Yaygın hatalar arasındanew
anahtar kelimesini kullanmayı unutmak, metodları yanlışlıkla constructor içine tanımlamak vethis
anahtar kelimesini callback fonksiyonlarda hatalı kullanmak bulunur. Debug içinconsole.log(this)
veinstanceof
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
Bilginizi Test Edin
Bu konudaki anlayışınızı pratik sorularla test edin.
📝 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