Sınıf (Programlama)
Nesne Yönelimli Programlamada (OOP) durum (değişkenler) ve davranış (metotlar) tanımlayan, nesneler oluşturmak için kullanılan bir şablon.
Bir sınıf, özel bir veri türü (data type) olarak işlev görür. Sınıflar OOP'nin üç ana sütununu destekler: Kapsülleme (Encapsulation - private kullanarak iç durumu gizleme), Kalıtım (Inheritance - mevcut bir sınıftan yeni bir alt sınıf oluşturma) ve Çok Biçimlilik (Polymorphism).
graph LR
Center["Sınıf (Programlama)"]:::main
Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
click Pre_object_oriented_programming "/terms/object-oriented-programming"
Rel_object["object"]:::related -.-> Center
click Rel_object "/terms/object"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5 yaşındaki gibi açıkla
Sınıfı bir kurabiye kalıbı, nesneyi ise gerçek kurabiye olarak düşün. Kalıp, şekli belirler. Aynı kalıbı kullanarak yüzlerce kurabiye yapabilirsin. Hepsinin şekli aynıdır, ancak birinde damla çikolata, diğerinde krema olabilir (bu onların benzersiz durumudur).
🤓 Expert Deep Dive
Örneklendirme sırasında, çalışma zamanı (runtime) yığın (heap) üzerinde örnek değişkenleri (instance variables) için bellek ayırır. Metotlar her nesne için çoğaltılmaz; derleyici, mevcut nesneye bir referansı (this veya self) dolaylı olarak metoda iletir. C++ ve Java'daki polimorfizm (dinamik gönderim), sanal metot tabloları (vtables) aracılığıyla uygulanır.
❓ Sık sorulan sorular
What is the difference between a class and an object?
A class is the blueprint or definition (the idea). An object is the actual instance created from that blueprint (the physical thing in memory). For example, 'House' is a class, but the specific house you live in is the object.
What is a constructor in a class?
A constructor is a special method inside a class that is automatically called when a new object is created. It is used to set the initial values (state) of the object.
Do all programming languages use classes?
No. While languages like Java, C++, and Python rely heavily on classes (Object-Oriented Programming), other languages use different paradigms. For example, C uses procedural programming, Haskell uses functional programming, and JavaScript originally used prototype-based inheritance.