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 SmithBu 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.
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:
- Getter
<strong>get age()</strong>: saklanan yaşı döndürür - Setter
<strong>set age(newAge)</strong>: yaşın 0 ile 120 arasında olduğunu doğrular- Eğer geçerliyse (0-120):
this._ageiçinde saklayın - Eğer geçersizse: değiştirmeyin ve
"Invalid age!"günlüğe kaydedin
- Eğer geçerliyse (0-120):
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 SmithKendin 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)
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
1Nesneler ve this Anahtar Kelimesi
Hızlı Tekrar: NesnelerNesnelere Metot Eklemethis Anahtar Kelimesini AnlamakYapıcı Fonksiyonlarnew Anahtar KelimesiGenel Tekrar Uygulaması7Kalıtım ve extends Anahtar Kelimesi
Kalıtım"is-a" İlişkisiextends Anahtar Kelimesisuper() MetoduÖzellikleri ve Metotları DevralmaÖzet Meydan Okuması2Kodu Düzenleme
Modüller Nedir?export ile Dışa Aktarmaimport ile İçe AktarmaVarsayılan ve Adlandırılmış Dışa Aktarmalar8OOP Kodunu Düzenleme
Sınıfları Modüller Halinde Düzenleme6Proje: Basit Bir Banka Hesabı
BankAccount SınıfıPara Yatırma ve Para Çekme9Statik Metotlar ve Özellikler
Sınıf Düzeyi ve Örnek DüzeyiStatik ÖzelliklerStatik Yardımcı MetotlarÖzet Meydan Okuma12Getter ve Setter'lar
get ve set Anahtar KelimeleriHesaplanmış ÖzelliklerDoğrulama ve Yan EtkilerÖzet Meydan Okuması15Final Meydan Okumaları
Oyun Karakteri OluşturucuE-ticaret Ürün SistemiÜniversite Yönetim SistemiAkıllı Ev Cihaz Sistemi