Système de gestion universitaire
Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 55 sur 56.
Défi
Dans ce défi, nous avons un système universitaire avec différents types de personnes (étudiants, professeurs) qui ont des rôles et des comportements différents.
1. Complétez la classe Person :
- Ajoutez la méthode
introduce()retournant"Hi, I'm ${name}"
2. Complétez la classe Student :
- Surchargez
introduce()pour retourner${super.introduce()}, a ${this.major} student. Exemple : "Hi, I'm Alice, a Computer Science student" - Ajoutez la méthode
addGrade(grade)qui prend une note entre 0 et 100- Validation : Vérifiez si la note est comprise entre 0 et 100
- Si valide : Ajoutez-la au tableau
this.grades - Si invalide : Affichez dans la console :
"Grade must be between 0 and 100"
3. Complétez la classe Professor :
- Surchargez
introduce()pour retourner“Prof. ${name} from ${department}”. Exemple : “Prof. Smith from Computer Science”
Essayez vous-même
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Créer des personnes
const student1 = new Student('Alice', 20, 'Computer Science');
const prof1 = new Professor('Dr. Johnson', 50, 'Mathematics');
console.log(student1.introduce()); // "Salut, je suis Alice, une étudiante en informatique"
console.log(prof1.introduce()) // "Prof. Dr. Johnson du département de mathématiques"
student1.addGrade(85);
student1.addGrade(90);
student1.addGrade(95);
console.log(`${student1.name}'s GPA: ${student1.getGPA()}`); // ~3.6
student1.addGrade(105); // Devrait afficher : "La note doit être comprise entre 0 et 100"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 Circle14Système de gestion de bibliothèque
Conception de la bibliothèqueClasse Book avec composition3Classes 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écapitulatif12Getters et Setters
Les mots-clés get et setPropriétés calculéesValidation et effets de bordDéfi récapitulatif15Défis finaux
Créateur de personnages de jeuSystème de produits E-commerceSystème de gestion universitaireSystème d'appareils domotiques