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: 98I 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); // SyntaxErrorSfida
- Aggiungi due campi alla classe chiamata UserAccount:
- Un campo pubblico
username - Un campo privato
#password
- Un campo pubblico
- Aggiungi un costruttore che accetta i parametri
usernameepassword
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"
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
1Oggetti e la keyword this
Ripasso rapido: oggettiAggiungere metodi agli oggettiCapire la keyword thisFunzioni costruttriciLa keyword newSfida di ripasso7Ereditarietà e parola chiave extends
EreditarietàLa relazione «è un»La parola chiave extendsIl metodo super()Ereditare proprietà e metodiSfida di ripasso13Composizione vs. ereditarietà
«Ha-un» vs. «è-un»I limiti dell’ereditarietà profondaCostruire oggetti2Organizzare il codice
Cosa sono i moduli?Esportare con exportImportare con importExport predefiniti vs. export nominati5Incapsulamento e accesso
IncapsulamentoCampi di classe pubblici e privatiMetodi privatiSfida di riepilogo8Organizzare il codice OOP
Organizzare le classi in moduli11Progetto: Un renderizzatore di forme
Configurazione: classe Shape ed esportazioneEreditarietà della classe CircleOverride e metodo areaContatore statico di Shape14Sistema di gestione della biblioteca
Progettare la bibliotecaClasse Book con composizioneValidazione dell'autore del libroEsercitati da solo: Compilatore JavaScript online