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: 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); // SyntaxError
challenge icon

Görev

  1. UserAccount isimli sınıfa iki alan ekleyin:
    1. Genel bir alan: username
    2. Özel bir alan: #password
  2. username ve password parametrelerini alan bir constructor 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