Private Metotlar
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 19 / 56.
JavaScript sınıflarındaki özel metotlar (private methods), uygulama detaylarını gizlemenize ve dahili işlevselliğe harici erişimi engellemenize olanak tanır.
ES2022'den itibaren, özel metotlar # öneki kullanılarak tanımlanabilir:
class Counter {
#count = 0;
// Özel bir metot oluşturun
#increment() {
this.#count++;
}
// Özel metodu kullanan genel metot
addOne() {
this.#increment();
return this.#count;
}
}Bir Counter örneği oluşturalım:
const myCounter = new Counter();Public metodu çağırabiliriz:
console.log(myCounter.addOne()); // Çıktı: 1Ancak private metoda doğrudan erişmeye çalışmak bir hataya neden olacaktır:
myCounter.#increment(); // Hata: Private metoda sınıf dışından erişilemezÖzel metotlar, dahili uygulama detaylarını dış dünyadan gizli tutarak kapsüllemenin (encapsulation) korunmasına yardımcı olur.
Görev
Mesajları saklayan bir MessageBox sınıfı size verilmiştir. Göreviniz, mesajları doğrulayan #isValidMessage(text) adında özel bir metot eklemektir. Bu metot şunları yapmalıdır:
- Metin boş değilse ve 100 karakterden azsa
truedöndürmelidir - Aksi takdirde
falsedöndürmelidir
Kopya kağıdı
JavaScript sınıflarındaki özel (private) metotlar # öneki kullanılarak tanımlanır ve bunlara yalnızca sınıf içerisinden erişilebilir:
class Counter {
#count = 0;
// Özel metot
#increment() {
this.#count++;
}
// Özel metodu kullanan genel (public) metot
addOne() {
this.#increment();
return this.#count;
}
}Özel metotlara sınıf dışından erişilemez:
const myCounter = new Counter();
myCounter.addOne(); // Çalışır
myCounter.#increment(); // Hata: Özel metoda erişilemezÖzel metotlar, dahili uygulama detaylarını gizleyerek kapsüllemenin (encapsulation) korunmasına yardımcı olur.
Kendin dene
import { MessageBox } from './messageBox.js';
// Mesaj kutusu kullanımı
const box = new MessageBox();
console.log(box.setMessage("Hello")); // "Message set!" (#isValidMessage kullanır)
console.log(box.setMessage("")); // "Invalid message!" (#isValidMessage kullanır)
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