Menu
Coddy logo textTech

Campi di classe pubblici e privati

Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 18 di 56.

Nelle classi JavaScript, possiamo definire due tipi di campi di classe: pubblici e privati.

I campi pubblici sono accessibili dall'esterno della classe e possono essere usati da chiunque.

Crea una classe con campi pubblici:

class Student {
  name = '';
  grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.grade = grade;
  }
}

Crea un'istanza di studente:

const student = new Student('Alice', 95);

Accedi ai campi pubblici dall’esterno della classe:

console.log(student.name); // Output: "Alice"
student.grade = 98;
console.log(student.grade); // Output: 98

I campi privati sono indicati con il simbolo # e sono accessibili solo dall'interno della classe:

class Student {
  name = '';
  #grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.#grade = grade;
  }
  
  getGrade() {
    return this.#grade;
  }
  
  updateGrade(newGrade) {
    this.#grade = newGrade;
  }
}

Uso dei campi privati:

const student = new Student('Bob', 87);
console.log(student.name); // Output: "Bob"

// Accedi al campo privato tramite un metodo
console.log(student.getGrade()); // Output: 87

// Aggiorna il campo privato tramite un metodo
student.updateGrade(92);
console.log(student.getGrade()); // Output: 92

// Questo causerebbe un errore:
// console.log(student.#grade); // SyntaxError
challenge icon

Sfida

  1. Aggiungi due campi alla classe chiamata UserAccount:
    1. Un campo pubblico username
    2. Un campo privato #password
  2. Aggiungi un costruttore che accetta i parametri username e password

Provalo tu

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

// Codice di test - non modificare
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // Dovrebbe stampare "alice"

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore JavaScript online