Public ve Private Sınıf Alanları
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 18 / 56.
JavaScript sınıflarında, iki tür sınıf alanı tanımlayabiliriz: public ve private.
Public alanlar sınıf dışından erişilebilirdir ve herkes tarafından kullanılabilir.
Genel (public) alanlara sahip bir sınıf oluşturun:
class Student {
name = '';
grade = 0;
constructor(name, grade) {
this.name = name;
this.grade = grade;
}
}Bir öğrenci örneği oluşturun:
const student = new Student('Alice', 95);Sınıf dışından public alanlara erişin:
console.log(student.name); // Çıktı: "Alice"
student.grade = 98;
console.log(student.grade); // Çıktı: 98Özel alanlar # sembolü ile belirtilir ve yalnızca sınıf içinden erişilebilir:
class Student {
name = '';
#grade = 0;
constructor(name, grade) {
this.name = name;
this.#grade = grade;
}
getGrade() {
return this.#grade;
}
updateGrade(newGrade) {
this.#grade = newGrade;
}
}Özel alanların kullanımı:
const student = new Student('Bob', 87);
console.log(student.name); // Çıktı: "Bob"
// Özel alana bir metot kullanarak erişme
console.log(student.getGrade()); // Çıktı: 87
// Özel alanı bir metot kullanarak güncelleme
student.updateGrade(92);
console.log(student.getGrade()); // Çıktı: 92
// Bu bir hataya neden olur:
// console.log(student.#grade); // SyntaxErrorGörev
- UserAccount isimli sınıfa iki alan ekleyin:
- Genel bir alan:
username - Özel bir alan:
#password
- Genel bir alan:
usernamevepasswordparametrelerini alan bir constructor ekleyin
Kopya kağıdı
JavaScript sınıfları genel (public) ve özel (private) alanları destekler.
Genel alanlara sınıf dışından erişilebilir:
class Student {
name = '';
grade = 0;
constructor(name, grade) {
this.name = name;
this.grade = grade;
}
}
const student = new Student('Alice', 95);
console.log(student.name); // Çıktı: "Alice"
student.grade = 98;Özel alanlar # sembolünü kullanır ve bunlara yalnızca sınıf içinden erişilebilir:
class Student {
name = '';
#grade = 0;
constructor(name, grade) {
this.name = name;
this.#grade = grade;
}
getGrade() {
return this.#grade;
}
updateGrade(newGrade) {
this.#grade = newGrade;
}
}
const student = new Student('Bob', 87);
console.log(student.getGrade()); // Çıktı: 87
student.updateGrade(92);
// student.#grade bir SyntaxError hatasına neden olurKendin dene
import { UserAccount } from './userAccount.js';
// Test kodu - değiştirmeyin
const user = new UserAccount("alice", "secret123");
console.log(user.username); // Çıktı "alice" olmalı
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