# Sınıf vs Nesne

Adres: https://softwaredictionary.org/tr/karsilastirma/class-vs-object
Son güncelleme: 2026-10-05

Kısaca: Sınıf, bir türdeki şeylerin hangi veri ve davranışlara sahip olduğunu tarif eden plandır; nesne ise o plandan üretilen, kendi değerleri olan somut bir şeydir.

## Sınıf (class) ile nesne (object) arasındaki fark nedir?

Nesne yönelimli programlamada sınıf bir tür tanımlar: nesnelerinin tutacağı alanları ve çalıştırabileceği metotları. Örnek (instance) de denen nesne bir sınıftan oluşturulur ve gerçek değerleri tutar. `User` bir sınıftır; adı Ada, e-postası ada@example.com olan kullanıcı ise o sınıfın bir nesnesidir.

Sınıf kodda bir kez yazılır ve program ondan bir şey oluşturmadan önce de vardır. Nesneler ise program çalışırken, genellikle `new` ile ya da sınıf çağrılarak oluşturulur ve gerektiği kadar çok olabilir: tek bir `Order` sınıfı, binlerce sipariş nesnesi. Her nesne kendi durumunu tutar; bu yüzden bir siparişin toplamını değiştirmek diğerlerine dokunmaz, ama hepsi aynı metotları paylaşır.

Yaygın benzetme kurabiye kalıbı ve kurabiyelerdir: kalıp şekli belirler, her kurabiye ise farklı süsleyebileceğiniz ayrı bir şeydir. Ya da bir ev planı ve ondan yapılan evler: tek plan, her birinin kendi adresi ve eşyaları olan pek çok ev.

Bazı dillerde kavramlar iç içe geçer. JavaScript'te sınıflar büyük ölçüde prototiplerin üzerine kurulu daha temiz bir sözdizimidir ve `{ }` ile hiç sınıf kullanmadan nesne oluşturabilirsiniz. Python'da sınıfın kendisi de oradan oraya aktarılabilen bir nesnedir. Fikir yine aynıdır: sınıf tarif eder, nesne ise vardır.

| Özellik | Sınıf | Nesne |
| --- | --- | --- |
| Ne olduğu | Bir plan ya da tür | O türün somut bir örneği |
| Var olduğu yer | Kodda, program çalışmadan önce | Bellekte, program çalışırken |
| Kaç tane | Tek bir tanım | Programın oluşturduğu kadar |
| Tuttuğu | Alanların ve metotların tanımları | Bu alanlar için gerçek değerler |
| Nasıl oluşur | Kaynak kodda yazılarak | `new` ile ya da sınıfın constructor'ı çağrılarak |
| Bellek | Tanımı bir kez yüklenir | Her nesne kendi belleğini kullanır |
| Örnek | `User`, `Order`, `Button` | Ada'nın hesabı, 1042 numaralı sipariş, Kaydet butonu |

## Sınıf şu durumlarda doğru seçim

- Bir türdeki her şeyin neye sahip olduğunu ve ne yapabildiğini tarif ediyorsunuz.
- Kodun birkaç yerinde aynı yapıya ve davranışa sahip şeylere ihtiyaç var.
- Kuralları tek bir yerde tutulan yeni bir tür tanımlamak istiyorsunuz.

## Nesne şu durumlarda doğru seçim

- Bu kullanıcı ya da şu sipariş gibi, kendi değerleri olan belirli bir şeye ihtiyacınız var.
- Program çalışıyor ve veriyi tutması, değiştirmesi ya da aktarması gerekiyor.
- Tanımıyla değil, şu anda var olan veriyle çalışıyorsunuz.

## Sık sorulan sorular

**Örnek (instance) ile nesne aynı şey mi?**

Günlük kullanımda evet. "Örnek" sözcüğü nesnenin hangi sınıftan geldiğini vurgular, "ada bir Account örneğidir" der gibi; ama iki sözcük de aynı şeyi anlatır.

**Sınıf olmadan nesne olabilir mi?**

Evet. JavaScript'te `{ name: "Ada" }` gibi bir nesne literal'ini hiç sınıf olmadan yazabilirsiniz; bazı diller de sınıflar yerine prototipler üzerine kuruludur. Sınıflar nesne oluşturmanın yollarından biridir, tek yolu değil.

**Bir sınıfın bütün nesneleri veriyi paylaşır mı?**

Her nesnenin kendi alanları vardır; ama bir sınıfın, kaç nesne oluşturulduğunu sayan bir sayaç gibi, sınıfın kendisine ait olan ve herkesin paylaştığı static alanları da olabilir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
