Menu
Coddy logo textTech

get ve set Anahtar Kelimeleri

Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 43 / 56.

Getter ve setter'lar, özellik gibi görünen ancak aslında fonksiyon olan özel metotlardır. Özelliklere nasıl erişildiği ve bunların nasıl değiştirildiği üzerinde size kontrol sağlarlar.

Basit bir Person sınıfı oluşturalım:

class Person {
  constructor(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
  }
  
  // fullName için Getter
  get fullName() {
    return `${this._firstName} ${this._lastName}`;
  }
  
  // fullName için Setter
  set fullName(value) {
    const parts = value.split(' ');
    this._firstName = parts[0];
    this._lastName = parts[1];
  }
}

Artık bu getter ve setter'ları özellikler gibi kullanabiliriz:

// Yeni bir Person oluştur
const person = new Person('John', 'Doe');

// Getter'ı kullan
console.log(person.fullName); // Çıktı: John Doe

// Setter'ı kullan
person.fullName = 'Jane Smith';

// Setter dahili özellikleri güncelledi
console.log(person.fullName); // Çıktı: Jane Smith

Bu metotları parantez kullanarak çağırmadığımıza dikkat edin. Tıpkı özellikler (properties) gibi davranırlar ancak erişildiklerinde veya değiştirildiklerinde kod çalıştırırlar.

challenge icon

Görev

Size bir age özelliğine sahip bir User sınıfı verilmiştir. Göreviniz, age için aşağıdakileri yapan bir getter ve setter eklemektir:

  1. Getter <strong>get age()</strong>: saklanan yaşı döndürür
  2. Setter <strong>set age(newAge)</strong>: yaşın 0 ile 120 arasında olduğunu doğrular
    • Eğer geçerliyse (0-120): this._age içinde saklayın
    • Eğer geçersizse: değiştirmeyin ve "Invalid age!" günlüğe kaydedin

Kopya kağıdı

Getter'lar (alıcılar) ve setter'lar (ayarlayıcılar), özellik gibi görünen ancak bunlara erişildiğinde veya bunlar değiştirildiğinde kod yürüten özel metotlardır.

Getter - bir değer döndüren bir metot tanımlamak için get anahtar kelimesini kullanın:

class Person {
  constructor(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
  }
  
  get fullName() {
    return `${this._firstName} ${this._lastName}`;
  }
}

Setter - bir değer kabul eden bir metot tanımlamak için set anahtar kelimesini kullanın:

class Person {
  set fullName(value) {
    const parts = value.split(' ');
    this._firstName = parts[0];
    this._lastName = parts[1];
  }
}

Kullanım - getter ve setter'lara özellikler gibi (parantez olmadan) erişin:

const person = new Person('John', 'Doe');

// Getter kullanımı
console.log(person.fullName); // John Doe

// Setter kullanımı
person.fullName = 'Jane Smith';
console.log(person.fullName); // Jane Smith

Kendin dene

import { User } from './user.js';

// Test kodu - değiştirmeyin
const user = new User("Alice", 25);
console.log(user.age);      // 25 çıktısını vermeli

user.age = 30;
console.log(user.age);      // 30 çıktısını vermeli

user.age = 150;             // "Invalid age!" göstermeli
console.log(user.age);      // Hala 30 çıktısını vermeli (değişmedi)

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler