Skip to content
Facundo Pereyra edited this page Jun 28, 2023 · 2 revisions

Wiki del Proyecto "Clases"

¡Bienvenido a la Wiki del Proyecto "Clases"!

Descripción del proyecto

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.

Clase Persona

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".

Clase Persona

-> 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".

Instrucciones de uso

Para utilizar el proyecto "Clase", sigue estos pasos:

  1. Copia el código del proyecto en un archivo JavaScript con extensión .js.

  2. Abre el archivo con un editor de código o intégralo en un proyecto existente.

  3. Ejecuta el archivo JavaScript para ver los resultados en la consola.

Clone this wiki locally