0Pricing
TypeScript Academy · Pelajaran

Pengubah public, private, dan protected

Atur akses ke anggota class dengan pengubah.

Pengubah public, private, dan protected adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Selamat Datang

Pengubah akses TypeScript mengatur visibilitas anggota kelas. Pengubah ini membantu menegakkan enkapsulasi dan mencegah penggunaan yang tidak diinginkan.

Publik: Dapat Diakses di Mana Saja

Publik adalah pengaturan bawaan. Anggota publik dapat diakses dari mana saja—di dalam kelas, dari subkelas, maupun dari kode eksternal.
class Car {
  public brand: string;
  constructor(brand: string) { this.brand = brand; }
}
const c = new Car('Toyota');
console.log(c.brand); // OK

Privat: Hanya Dapat Diakses Kelas

Anggota privat hanya dapat diakses di dalam kelas yang mendeklarasikannya. Subkelas dan kode eksternal tidak dapat mengaksesnya.
class BankAccount {
  private balance: number = 0;
  deposit(n: number) { this.balance += n; }
}
const a = new BankAccount();
// a.balance; // Error!

Terlindungi: Dapat Diakses Kelas dan Subkelas

Anggota terlindungi dapat diakses di dalam kelas yang mendeklarasikannya dan subkelas mana pun, tetapi tidak dari kode eksternal.
class Animal {
  protected name: string;
  constructor(name: string) { this.name = name; }
}
class Dog extends Animal {
  bark() { console.log(this.name + ' says woof!'); } // OK
}

Penegakan Hanya Saat Kompilasi

Pengubah akses TypeScript hanya diperiksa saat kompilasi. Keluaran JavaScript tetap memiliki properti publik—tidak ada penegakan saat program dijalankan.

Privat JavaScript dengan #

JavaScript memiliki bidang privat bawaan dengan `#` yang ditegakkan saat program dijalankan. TypeScript mendukung sintaksis ini selain kata kuncinya sendiri, `private`.
class Counter {
  #count = 0; // runtime private (JavaScript)
  increment() { this.#count++; }
  get value() { return this.#count; }
}

Pengubah readonly

Properti readonly hanya dapat diatur selama konstruksi. Properti tersebut tidak dapat diubah setelah inisialisasi.
class User {
  readonly id: number;
  constructor(id: number) { this.id = id; }
}
const u = new User(1);
// u.id = 2; // Error!

Menggabungkan Pengubah

Anda dapat menggabungkan pengubah akses dengan readonly pada properti yang sama.
class Config {
  constructor(
    public readonly host: string,
    private readonly port: number
  ) {}
}

private pada Konstruktor

Menjadikan konstruktor privat mencegah pembuatan instans dari luar. Sebagai gantinya, gunakan metode pabrik statis.
class Singleton {
  private static instance: Singleton;
  private constructor() {}
  static getInstance(): Singleton {
    return this.instance ??= new Singleton();
  }
}

Konstruktor Terlindungi

Konstruktor terlindungi mencegah pembuatan instans secara langsung, tetapi memungkinkan subkelas memanggilnya melalui super().
class Base {
  protected constructor(public id: number) {}
}
class Derived extends Base {
  constructor(id: number) { super(id); }
}

Pengubah Akses Tidak Menambah Beban Saat Berjalan

Karena TypeScript menghapus semua informasi tipe, pengubah akses tidak berdampak sama sekali pada ukuran atau kinerja keluaran JavaScript hasil kompilasi.

Pemeriksaan Singkat

Pengubah akses mana yang membuat anggota kelas dapat diakses di dalam kelas DAN subkelasnya, tetapi TIDAK dari kode eksternal?

Ringkasan

Gunakan publik sebagai pengaturan bawaan untuk anggota yang dapat diakses, privat untuk bagian internal yang dienkapsulasi, dan terlindungi untuk anggota yang ditujukan bagi subkelas. Tambahkan readonly untuk mencegah perubahan setelah konstruksi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengubah public, private, dan protected” gratis?

Ya — teks lengkap “Pengubah public, private, dan protected” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pengubah public, private, dan protected”?

Atur akses ke anggota class dengan pengubah. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pengubah public, private, dan protected” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Class dan Konstruktor TypeScript
  2. Pengubah public, private, dan protected
  3. Properti readonly dan Properti Parameter
  4. Mengimplementasikan Antarmuka dengan Class
← Kembali ke TypeScript Academy