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

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 olur

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