Sistema de gestión universitaria
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 55 de 56.
Desafío
En este desafío, tenemos un sistema universitario con diferentes tipos de personas (estudiantes, profesores) que tienen diferentes roles y comportamientos.
1. Completa la clase Person:
- Añade el método
introduce()que devuelva"Hi, I'm ${name}"
2. Completa la clase Student:
- Sobrescribe
introduce()para que devuelva${super.introduce()}, a ${this.major} student. Ejemplo: "Hi, I'm Alice, a Computer Science student" - Añade el método
addGrade(grade)que reciba una calificación entre 0 y 100- Validación: Comprueba si la calificación está entre 0 y 100
- Si es válida: Añádela al array
this.grades - Si no es válida: Muestra en consola:
"Grade must be between 0 and 100"
3. Completa la clase Professor:
- Sobrescribe
introduce()para que devuelva“Prof. ${name} from ${department}”. Ejemplo: “Prof. Smith from Computer Science”
Pruébalo tú mismo
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Crear personas
const student1 = new Student('Alice', 20, 'Computer Science');
const prof1 = new Professor('Dr. Johnson', 50, 'Mathematics');
console.log(student1.introduce()); // "Hi, I'm Alice, a Computer Science student"
console.log(prof1.introduce()) // "Prof. Dr. Johnson from Mathematics"
student1.addGrade(85);
student1.addGrade(90);
student1.addGrade(95);
console.log(`${student1.name}'s GPA: ${student1.getGPA()}`); // ~3.6
student1.addGrade(105); // Debería registrar: "Grade must be between 0 and 100"Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso12Getters y Setters
Las palabras clave get y setPropiedades computadasValidación y efectos secundariosDesafío de repaso15Desafíos finales
Creador de personajes de videojuegosSistema de productos de E-commerceSistema de gestión universitariaSistema de dispositivos para el hogar inteligente