Sınıf
- İngilizcesi
- Class
- Okunuşu
- klas
Kısaca
Sınıf, nesne yönelimli programlamada bir grup nesnenin paylaştığı veri ve davranışı tanımlayan, nesnelerin örnek olarak ondan oluşturulduğu bir plandır.
Programlamada sınıf nedir?
Sınıf, belirli bir tür nesnenin nasıl göründüğünü ve neler yapabildiğini anlatır. Her nesnenin sakladığı veriler olan özellikleri (property) ve her nesnenin çalıştırabildiği fonksiyonlar olan metotları listeler. Ardından sınıftan, her biri kendi değerlerine sahip, ihtiyacınız kadar nesne (örnek, instance) oluşturursunuz.
Genellikle new anahtar sözcüğüyle bir örnek oluşturduğunuzda, nesnenin başlangıç değerlerini ayarlamak için kurucu (constructor) adı verilen özel bir metot çalışır. Sınıfın metotlarında JavaScript'teki this ya da Python'daki self gibi bir anahtar sözcük, kullanılan belirli örneği ifade eder. Sınıflar ayrıca örneğin extends ile başka sınıflardan kalıtım alarak üst sınıfın kodunu yeniden kullanabilir, davranış ekleyebilir veya geçersiz kılabilir.
Kurabiye kalıbı sınıf için klasik bir benzetmedir. Kalıp şekli tanımlar ve bastığınız her kurabiye, her birini farklı süslesiniz bile, o şekle sahip ayrı bir örnektir. Sınıflar, kullanıcılar, siparişler ve kullanıcı arayüzü bileşenleri gibi şeyleri modelledikleri Java, C#, C++, Python ve Swift gibi dillerin merkezindedir.
Sınıf sıklıkla nesneyle karıştırılır. Sınıf tanımdır; nesne ise program çalışırken bellekte var olan somut bir örnektir. JavaScript'te sınıflar, dilin daha eski prototip tabanlı sistemi üzerinde daha temiz bir sözdizimi olarak ES2015'te eklendi; bu yüzden Java veya C#'taki sınıflardan biraz farklı davranırlar.
Önemli noktalar
- Sınıf, nesnelerinin paylaştığı özellikleri ve metotları tanımlar.
- Bir sınıftan oluşturulan nesneye örnek (instance) denir.
- Kurucu (constructor), her yeni örneğin başlangıç durumunu ayarlar.
- Sınıflar, davranışı yeniden kullanmak ve genişletmek için başka sınıflardan kalıtım alabilir.
Örnek
class Animal {
constructor(name) {
this.name = name; // each instance stores its own name
}
speak() { return `${this.name} makes a sound`; }
}
// Dog inherits from Animal and overrides speak()
class Dog extends Animal {
speak() { return `${this.name} barks`; }
}
const rex = new Dog("Rex"); // create an instance
rex.speak(); // "Rex barks"Sık sorulan sorular
Sınıf ile nesne arasındaki fark nedir?
Sınıf, özellikleri ve metotları tanımlayan şablondur. Nesne ise o sınıftan oluşturulmuş, kendi verisine sahip belirli bir örnektir; bu yüzden tek bir User sınıfı binlerce farklı kullanıcı nesnesi üretebilir.
Kurucu (constructor) nedir?
Kurucu, bir sınıftan yeni bir örnek oluşturduğunuzda otomatik çalışan özel bir metottur. Genellikle new User("Ada") örneğindeki gibi, aktarılan argümanlardan nesnenin başlangıç özellik değerlerini ayarlar.
JavaScript'te sınıflar var mı?
Evet. JavaScript'te ES2015'ten beri class sözdizimi vardır, ancak arka planda hâlâ diğer nesnelerin kalıtım aldığı nesneler olan prototipleri kullanır. Bu sözdizimi, nesne yönelimli kodu okumayı ve yazmayı yalnızca kolaylaştırır.
Sık karşılaştırılanlar
İlgili sayfalar
- OOPProgramlamanın Temelleri, s. 41OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
- FonksiyonProgramlamanın Temelleri, s. 20Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
- Veri türüProgramlamanın Temelleri, s. 54Veri türü, bir programa bir verinin sayı ya da metin gibi hangi tür bir değer taşıdığını ve hangi işlemlerin ona uygulanabileceğini söyleyen sınıflandırmadır.
- Tasarım DeseniYazılım Mimarisi, s. 42Tasarım deseni, yazılım tasarımında sık görülen bir soruna kanıtlanmış, yeniden kullanılabilir çözümdür; hazır kod değil, genel bir şablon olarak anlatılır.
- Singleton DeseniYazılım Mimarisi, s. 38Singleton deseni, bir sınıfın yalnızca tek bir örneğinin bulunmasını sağlayan ve ona tek, küresel bir erişim noktası sunan oluşturucu bir tasarım desenidir.
- TypeScriptWeb Geliştirme, s. 51TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.
- NesneProgramlamanın Temelleri, s. 39Nesne, ilgili veriyi ve davranışı bir arada tutan yapıdır: değerleri özellik denen adlandırılmış alanlarda, onları işleyen fonksiyonları metot olarak taşır.
- MetotProgramlamanın Temelleri, s. 38Metot, bir nesneye ya da sınıfa ait olup onun üzerinden çağrılan fonksiyondur; user.rename("Ada") örneğindeki gibi nesnenin verisini okuyup değiştirebilir.
- ConstructorProgramlamanın Temelleri, s. 7Constructor, bir sınıftan yeni bir nesne oluşturulduğunda çalışan ve nesnenin başlangıç değerlerini ayarlayarak onu kullanıma hazırlayan özel bir metottur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin