Champs de classe publics et privés
Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 18 sur 56.
Dans les classes JavaScript, nous pouvons définir deux types de champs de classe : publics et privés.
Les champs publics sont accessibles depuis l'extérieur de la classe et peuvent être utilisés par n'importe qui.
Créez une classe avec des champs publics :
class Student {
name = '';
grade = 0;
constructor(name, grade) {
this.name = name;
this.grade = grade;
}
}Créez une instance d'étudiant :
const student = new Student('Alice', 95);Accédez aux champs publics depuis l'extérieur de la classe :
console.log(student.name); // Sortie : "Alice"
student.grade = 98;
console.log(student.grade); // Sortie : 98Les champs privés sont désignés par le symbole # et ne peuvent être consultés qu'à l'intérieur de la classe :
class Student {
name = '';
#grade = 0;
constructor(name, grade) {
this.name = name;
this.#grade = grade;
}
getGrade() {
return this.#grade;
}
updateGrade(newGrade) {
this.#grade = newGrade;
}
}Utilisation de champs privés :
const student = new Student('Bob', 87);
console.log(student.name); // Résultat : "Bob"
// Accéder à un champ privé en utilisant une méthode
console.log(student.getGrade()); // Résultat : 87
// Mettre à jour un champ privé en utilisant une méthode
student.updateGrade(92);
console.log(student.getGrade()); // Résultat : 92
// Ceci provoquerait une erreur :
// console.log(student.#grade); // SyntaxErrorDéfi
- Ajoutez deux champs dans la classe nommée UserAccount :
- Un champ public
username - Un champ privé
#password
- Un champ public
- Ajoutez un constructeur qui prend les paramètres
usernameetpassword
Essayez vous-même
import { UserAccount } from './userAccount.js';
// Code de test - ne pas modifier
const user = new UserAccount("alice", "secret123");
console.log(user.username); // Devrait afficher "alice"
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Objets et le mot-clé this
Révision rapide : Les objetsAjouter des méthodes aux objetsComprendre le mot-clé thisFonctions constructeursLe mot-clé newDéfi récapitulatif7L'héritage et le mot-clé extends
L'héritageLa relation « est un »Le mot-clé extendsLa méthode super()Hériter des propriétés et méthodesDéfi récapitulatif10Polymorphisme
Qu'est-ce que le polymorphisme ?Redéfinition de méthodes héritéesUtiliser superDéfi récapitulatif13Composition vs Héritage
Les relations « has-a » vs « is-a »Les limites de l'héritage profondConstruction d'objets2Organisation du code
Qu'est-ce qu'un module ?Exporter avec exportImporter avec importExports par défaut vs nommés5Encapsulation & Accès
EncapsulationChamps de classe publics et privésMéthodes privéesDéfi récapitulatif8Organisation du code POO
Organiser les classes en modules11Projet : Un moteur de rendu de formes
Configuration : Classe Shape et ExportationHéritage de la classe CircleRedéfinition et méthode AreaCompteur de formes statique14Système de gestion de bibliothèque
Conception de la bibliothèqueClasse Book avec compositionValidation de l'auteur du livre3Classes et Objets
Qu'est-ce qu'une classe ?Créer des instancesPropriétés et méthodesDéfi récapitulatif9Méthodes et propriétés statiques
Niveau classe vs Niveau instancePropriétés statiquesMéthodes utilitaires statiquesDéfi récapitulatif