-
Notifications
You must be signed in to change notification settings - Fork 1
Clases
¡Bienvenido a la Wiki del Proyecto "Clases"!
En el siguiente código se ilustra los conceptos de clases, herencia y encapsulación de datos utilizando las características de getter y setter en JavaScript. Estas características permiten un control más preciso sobre la obtención y asignación de valores a las propiedades de los objetos, lo que es útil en la programación orientada a objetos para mantener la coherencia de los datos y proteger su integridad.
Comenzaremos con el análisis de la clase Persona :
class Persona {
constructor(nombre, apellido) {
this.nombre = nombre;
this.apellido = apellido;
}
get nombre() {
return this._nombre;
}
set nombre(nombre) {
this._nombre = nombre;
}
get apellido() {
return this._apellido;
}
set apellido(apellido) {
this._apellido = apellido;
}
}-> La clase Persona tiene un constructor que acepta dos parámetros: nombre y apellido. Dentro del constructor, se asignan estos valores a las propiedades nombre y apellido del objeto.
-> Además, la clase Persona tiene dos pares de métodos getter y setter para las propiedades nombre y apellido. Los métodos getter (get) devuelven el valor de las propiedades correspondientes, mientras que los métodos setter (set) permiten modificar dichos valores.
-> A continuación, se crea una instancia de la clase Persona con el nombre persona1 y los valores "Martin" y "Perez" para nombre y apellido, respectivamente. Luego, se muestra en la consola el valor de persona1.nombre, que debería ser "Martin".
-> Después, se asigna un nuevo valor a persona1.nombre mediante el setter. Se establece el valor como "Juan Carlos" y se muestra nuevamente en la consola, lo que debería imprimir "Juan Carlos".
-> Luego se muestra en la consola el valor de persona1.apellido, que debería ser "Perez". Luego se crea otra instancia de la clase Persona con el nombre persona2 y los valores "Carlos" y "Lara" para nombre y apellido, respectivamente.
-> Se cambia el valor de persona2.nombre a "María Laura" mediante el setter y se muestra en la consola, lo que debería imprimir "María Laura". Luego, se muestra en la consola el valor de persona2.apellido, que debería ser "Lara".
-> Ahora pasemos a la segunda parte del código, donde se implementa la herencia:
class Empleado extends Persona {
constructor(nombre, apellido, departamento) {
super(nombre, apellido);
this._departamento = departamento;
}
get departamento() {
return this._departamento;
}
set departamento(departamento) {
this._departamento = departamento;
}
}-> La clase Empleado extiende la clase Persona mediante la palabra clave extends, lo que significa que Empleado hereda todas las propiedades y métodos de la clase Persona.
-> El constructor de Empleado acepta tres parámetros: nombre, apellido y departamento. Se utiliza el método super(nombre, apellido) para llamar al constructor de la clase Persona y asignar los valores de nombre y apellido a las propiedades correspondientes heredadas de la clase padre.
-> Además, la clase Empleado tiene un par de métodos getter y setter para la propiedad departamento, similar a la clase Persona.
-> Luego, se crea una instancia de la clase Empleado con el nombre empleado1, utilizando los valores "Maria", "Gimenez" y "Sistemas" para nombre, apellido y departamento, respectivamente.
-> Al final, se muestra en la consola el objeto empleado1 completo, que debería incluir las propiedades nombre, apellido y departamento. También se muestra el valor de empleado1.nombre, que debería ser "Maria".
Para utilizar el proyecto "Clase", sigue estos pasos:
-
Copia el código del proyecto en un archivo JavaScript con extensión
.js. -
Abre el archivo con un editor de código o intégralo en un proyecto existente.
-
Ejecuta el archivo JavaScript para ver los resultados en la consola.