Menu
Coddy logo textTech

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: genel ve özel.

Genel alanlara sınıfın dışından erişilebilir ve herkes tarafından kullanılabilir.

Genel 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ın dışından genel 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); // SyntaxError
challenge icon

Görev

  1. UserAccount adlı sınıfa iki alan ekleyin:
    1. Genel bir username alanı
    2. Özel bir #password alanı
  2. username ve password parametrelerini alan bir kurucu ekleyin

Kendin dene

import { UserAccount } from './userAccount.js';

// Test kodu - değiştirmeyin
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // Çıktı "alice" olmalı

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

Kendi başına pratik yap: Online JavaScript derleyicisi