Object (Nesne)

Yazar fotoğrafı

Gülşah Şeyma Koçak

25 Şubat 2025

4 dk Okuma

Object (Nesne) Nedir?

Object (Nesne), yazılım geliştirmede veri ve işlevleri bir araya getiren, nesne yönelimli programlamanın (OOP – Object-Oriented Programming) temel yapı taşıdır. Gerçek dünyadaki varlıkları (örneğin, bir araba, kullanıcı veya hesap) programlama ortamında temsil etmek için kullanılır.

Object'in Temel Özellikleri

Bir object iki ana bileşenden oluşur:

Properties (Özellikler)

  • Object'in özelliklerini tanımlar.
  • Örnek: Bir "Araba" object'inin marka, model, renk gibi özellikleri olabilir.

Methods (Metodlar)

  • Object'in gerçekleştirebileceği işlemleri tanımlar.
  • Örnek: Araba object'inin calistir(), hizlan(), dur() gibi fonksiyonları olabilir.

JavaScript’te Object Örneği

const araba = {
  marka: "Tesla",
  model: "Model 3",
  yil: 2022,
  calistir: function() {
    console.log(`${this.marka} ${this.model} çalıştırıldı.`);
  }
};

araba.calistir(); // "Tesla Model 3 çalıştırıldı."

Bu kodda:

  • marka, model, yil → Object'in özellikleridir.
  • calistir() → Object'in metodu, yani bir davranışıdır.
  • this → Object'in kendi içindeki değerlere erişmesini sağlar.

Object Yönelimli Programlama (OOP) Kavramları

Encapsulation (Kapsülleme)

  • Object, verileri ve metotları bir arada tutarak dışarıdan direkt erişimi sınırlar.
  • Örnek: Bir banka hesabında bakiye değeri, doğrudan değiştirilemez, sadece belirli metotlarla güncellenebilir.

Inheritance (Miras Alma / Kalıtım)

  • Bir object, başka bir object'in özelliklerini ve metotlarını devralabilir.
  • Örnek: Araba sınıfından türeyen ElektrikliAraba sınıfı, marka ve model özelliklerini devralabilir.

Polymorphism (Çok Biçimlilik)

  • Aynı isimdeki bir metot, farklı object'lerde farklı şekilde çalışabilir.
  • Örnek: calistir() metodu Araba object'inde ve Uçak object'inde olabilir ama farklı çalışabilir.

Abstraction (Soyutlama)

  • Gereksiz detayları gizleyerek, sadece gerekli bilgileri gösterme prensibidir.
  • Örnek: Kullanıcının sadece girisYap() metodunu kullanarak sisteme giriş yapabilmesi, arka plandaki tüm doğrulama işlemlerinin gizlenmesi.

Object'ler Hangi Alanlarda Kullanılır?

React ve Frontend Geliştirme

  • React bileşenleri (components) birer object'tir.
  • State ve Props, JavaScript object'leri olarak yönetilir.
  • Örnek: Bir Kullanıcı Kartı (UserCard) bileşeni object gibi çalışabilir.

Veri Yönetimi

  • JSON (JavaScript Object Notation) formatı, verileri object olarak taşımak için kullanılır.
  • Bir API çağrısından dönen JSON verisi aslında bir object'tir.

Veri Tabanları ve ORM (Object-Relational Mapping)

  • ORM kütüphaneleri (Sequelize, Mongoose vb.), veritabanındaki tabloları object'ler olarak yönetir.
  • Örnek: Bir User modeli veritabanındaki users tablosuna karşılık gelir.

Oyun Geliştirme

  • Bir oyun karakteri, konumu, sağlığı ve saldırı yetenekleriyle bir object olarak modellenir.

Object Kullanımının Avantajları

  • Kodun düzenli ve tekrar kullanılabilir olması
  • Gerçek dünyadaki varlıkları modellemeyi kolaylaştırması
  • Büyük projelerde yönetimi kolaylaştırması
  • Modüler yapı sayesinde kodun bakımını ve testini kolaylaştırması

React'te Object Yönetimi ve Kullanımı

React geliştirirken, state ve props gibi temel kavramlar aslında object'ler olarak yönetilir. Özellikle useState Hook'u ile object'leri nasıl verimli kullanabileceğimizi öğrenmek, React projelerinde büyük kolaylık sağlar.

useState ile Object Kullanımı

React’te useState, bileşenlerin durumunu yönetmek için kullanılır. State tek bir değer olabileceği gibi bir object de olabilir.

import { useState } from "react";

function KullaniciProfili() {
  const [kullanici, setKullanici] = useState({
    isim: "Ahmet",
    yas: 25,
    sehir: "İstanbul"
  });

  const yasArttir = () => {
    setKullanici(prevState => ({ ...prevState, yas: prevState.yas + 1 }));
  };

  return (
    <div>
      <p>İsim: {kullanici.isim}</p>
      <p>Yaş: {kullanici.yas}</p>
      <p>Şehir: {kullanici.sehir}</p>
      <button onClick={yasArttir}>Yaşı Arttır</button>
    </div>
  );
}

Bu kodda:

  • State bir object olarak yönetilir.
  • Spread operatörü (...prevState) kullanılarak veri kaybı önlenir.
  • useReducer gibi alternatifler, daha karmaşık object yönetimi için kullanılabilir.

Sonuç

Object'ler, modern yazılım geliştirme süreçlerinde temel yapı taşlarından biridir. React, oyun geliştirme, veritabanı yönetimi ve API entegrasyonlarında object yönelimli yaklaşımlar kullanılmaktadır. React'te useState ile object yönetimi oldukça yaygındır ve spread operatörü veri kaybını önlemek için etkili bir yöntemdir. Gelecekte daha optimize edilmiş object yönetim teknikleri ile yazılım geliştirme süreçleri daha verimli hale gelecektir.