Ana içeriğe geç

Nesne

İngilizcesi
Object
Türkçe karşılığı
obje
Okunuşu
abcekt
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/object

Kısaca

Nesne, 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.

Programlamada nesne (object) nedir?

Nesneler, programın şeyleri insanların düşündüğü şekilde modellemesini sağlar. Bir kullanıcı nesnesi bir ad, bir e-posta adresi ve bir kayıt tarihi tutabilir; rename() ya da isActive() gibi metotlar sunabilir. Kod ortalıkta dağınık değişkenler taşımak yerine, verisini ve o veri üzerindeki işlemleri bir arada tutan tek bir nesneyi dolaştırır.

Java, C#, Python ve C++ gibi sınıf tabanlı dillerde nesne, bir sınıfın örneğidir (instance): sınıf şablondur, ondan üretilen her nesnenin alanların kendine ait bir kopyası vardır. new User("Ada") ile new User("Linus"), aynı sınıftan, farklı verilere sahip iki nesnedir. JavaScript'te nesneler doğrudan değişmez olarak da yazılabilir, { name: "Ada" }, ve prototipler üzerinden kalıtım alır.

Değişkenler genellikle nesnenin kendisini değil, ona bir referansı tutar. Bir nesneyi ikinci bir değişkene atamak onu kopyalamaz: iki ad da aynı nesneyi gösterir, bu yüzden birinden yapılan değişiklik diğerinden de görünür. Birçok dilde iki nesneyi == ya da === ile karşılaştırmak, içeriklerinin aynı olup olmadığını değil, aynı nesne olup olmadıklarını kontrol eder.

Sık yapılan bir yanlış, nesnelerin yalnızca nesne yönelimli programlamaya ait olduğunu düşünmektir. Fonksiyonel ve prosedürel kod da veriyi gruplamak için nesneler ya da kayıtlar kullanır; kodu nesne yönelimli yapan, iç durumunu gizleyen ve davranışını metotlarla sunan nesneler etrafında düzenlenmesidir.

Önemli noktalar

  • Nesne, ilgili veriyi (özellikler) ve davranışı (metotlar) bir arada tutar.
  • Sınıf tabanlı dillerde nesne bir sınıfın örneğidir.
  • JavaScript'te nesne değişmezleri ve prototip tabanlı kalıtım da vardır.
  • Değişkenler referans tutar; bu yüzden iki ad aynı nesneyi gösterebilir.
  • Nesne yönelimli kod, durumunu gizleyen nesneler etrafında düzenlenir.

Örnek

Bir sınıftan ve değişmez olarak nesne oluşturmak (JavaScript)javascript
class User {
  constructor(name) {
    this.name = name;          // a property
    this.createdAt = new Date();
  }
  greet() {                    // a method
    return `Hi, I'm ${this.name}`;
  }
}

const ada = new User("Ada");   // an instance of User
console.log(ada.greet());

const point = { x: 2, y: 3 };  // an object literal
const same = point;            // a second reference, not a copy
same.x = 10;
console.log(point.x);          // 10

Sık sorulan sorular

Sınıf ile nesne arasındaki fark nedir?

Sınıf tanımdır: nesnelerinin hangi alanları ve metotları olacağını söyler. Nesne ise ondan üretilmiş, kendi değerlerine sahip somut bir örnektir. Bir sınıftan istenildiği kadar nesne üretilebilir.

Özellik (property) ve metot nedir?

Alan ya da nitelik olarak da adlandırılan özellikler, bir nesnenin tuttuğu değerlerdir. Metotlar ise nesneye ait olan ve genellikle bu değerleri okuyan ya da değiştiren fonksiyonlardır.

Bir nesneyi nasıl kopyalarım?

Atama yalnızca referansı kopyalar. Yeni bir nesne elde etmek için açıkça kopyalamanız gerekir: sığ kopya (shallow copy) üst düzey alanları çoğaltır, JavaScript'teki { ...obj } gibi; derin kopya (deep copy), örneğin structuredClone(obj), iç içe nesneleri de kopyalar.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar