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.
Alıcılar ve ayarlayıcılar, özellikler gibi görünen ancak aslında işlev olan özel yöntemlerdir. Özelliklere nasıl erişilip değiştirileceği üzerinde kontrol sahibi olmanızı 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];
}
}_firstName ve _lastName içindeki alt çizgi bir adlandırma kuralıdır: diğer geliştiricilere bu özelliklerin dahili olduğunu ve doğrudan değil, getter ve setter aracılığıyla okunup değiştirilmesi gerektiğini belirtir. JavaScript bunu zorunlu kılmaz.
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, iç özellikleri güncelledi
console.log(person.fullName); // Çıktı: Jane SmithBu yöntemleri parantezlerle çağırmadığımıza dikkat edin. Tıpkı özellikler gibi davranırlar, ancak erişildiklerinde veya değiştirildiklerinde kod çalıştırırlar.
Görev
Sizeye User sınıfı ve bir age özelliği verilmiştir. Göreviniz, age için aşağıdakileri yapan bir getter ve setter eklemektir:
- Getter
get age(): saklanan yaşı döndürür - Setter
set age(newAge): yaşın 0 ile 120 arasında olduğunu doğrular- Geçerliyse (0-120):
this._ageiçinde saklar - Geçersizse: değiştirmez ve
"Invalid age!"kaydeder
- Geçerliyse (0-120):
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); // Hâlâ 30 çıktısını vermeli (değişmeden)
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 ÇekmePrivate Alan Olarak Bakiye9Statik 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 SistemiKendi başına pratik yap: Online JavaScript derleyicisi