tecestela2022 / TP1-estela-_sosa

0 stars 0 forks source link

Codigo rectificado TP1 #1

Open tecestela2022 opened 1 month ago

tecestela2022 commented 1 month ago

// El codigo debe ; Aplicar los conceptos de encapsulamiento, herencia y polimorfismo, Debe dar Como salida un descuento del 10%

<?php

class Empleado { private $nombre; private $sueldo;

public function __construct($nombre, $sueldo) {
    $this->nombre = $nombre;
    $this->sueldo = $sueldo;
}

public function getNombre() {
    return $this->nombre;
}

public function getSueldo() {
    return $this->sueldo;
}

public function getActividad() {
    return "La persona está trabajando";
}

public function calcularSalario() {
    return $this->sueldo * 0.90; // Aplicamos un descuento del 10% al sueldo
}

}

class Diseñador extends Empleado { private $trabajo;

public function __construct($nombre, $sueldo, $trabajo) {
    parent::__construct($nombre, $sueldo);
    $this->trabajo = $trabajo;
}

public function getTrabajo() {
    return $this->trabajo;
}

public function actividad() {
    return "El diseñador " . $this->getNombre() . " está trabajando en: " . $this->trabajo;
}

public function calcularSalario() {
    return $this->getSueldo() * 0.90; // Aplicamos un descuento del 10% al sueldo
}

}

class Desarrollador extends Empleado { private $trabajo;

public function __construct($nombre, $sueldo, $trabajo) {
    parent::__construct($nombre, $sueldo);
    $this->trabajo = $trabajo;
}

public function getTrabajo() {
    return $this->trabajo;
}

public function actividad() {
    return "El desarrollador " . $this->getNombre() . " está trabajando en: " . $this->trabajo;
}

public function calcularSalario() {
    return $this->getSueldo() * 0.90; // Aplicamos un descuento del 10% al sueldo
}

}

// Ejemplo de uso $juan = new Empleado("Juan", 2000); echo "El empleado está trabajando." . PHP_EOL; echo "El salario neto de Juan es de $" . $juan->calcularSalario() . PHP_EOL;

$ana = new Desarrollador("Ana", 2000, "escribiendo un código PHP"); echo $ana->actividad() . PHP_EOL; echo "El salario neto de Ana es $" . $ana->calcularSalario() . PHP_EOL;

$luis = new Diseñador("Luis", 1900, "diseñando usando Photoshop"); echo $luis->actividad() . PHP_EOL; echo "El salario neto de Luis es $" . $luis->calcularSalario() . PHP_EOL; ?>

tecestela2022 commented 1 month ago

Sistema de gestion empleados

El objetio es crear un sistema que permita la gestion de empleados . Aplicando los conceptos de encapsulamiento, herencia y polimorfismo en php .

-Encapsulamiento: Es un principio de la programacion orientada a objero que cpnsiste en ocultar el estado interno de un objeto y restringir el acceso a sus propiedades y métodos. Se logra mediante la declaración de propiedades y métodos como públicos, privados o protegidos.adeades y métodos.

Requerimientos

Encapsulamiento: Creamos una clase Empleado con propiedades privadas y métodos públicos. Herencia: Creamos clases hijas Desarrollador y Diseniador que heredan de Empleado.

Polimorfismo: Implementamos un método en la clase Empleado que será sobrescrito en las clases hijas.

Calcular Salario: agregar un metodo a la clase Empleado, que calcula el salario neto aplicando un descuento fijo del 10% al sueldo.

Salida esperada:

El empleado esta trabando salario neto de juan $1800 El desarrollador ana está escribiendo código en php salario neto ana $ 1800 El diseñador lunes esta diseñando usando Photoshop salario neto de Luis $1700

tecestela2022 commented 1 month ago

Encapsulamiento <?php

class Empleado { private $nombre; private $sueldo;

public function __construct($nombre, $sueldo) {
    $this->nombre = $nombre;
    $this->sueldo = $sueldo;
}

public function getNombre() {
    return $this->nombre;
}

public function getSueldo() {
    return $this->sueldo;
}

public function getActividad() {
    return "La persona está trabajando";
}

En esta porcion del codigo se aplico encapsulamiento dado que:

tecestela2022 commented 1 month ago

herenciaclass Diseñador extends Empleado { private $trabajo;

public function __construct($nombre, $sueldo, $trabajo) {
    parent::__construct($nombre, $sueldo);
    $this->trabajo = $trabajo;
}

public function getTrabajo() {
    return $this->trabajo;
}

public function actividad() {
    return "El diseñador " . $this->getNombre() . " está trabajando en: " . $this->trabajo;
}

public function calcularSalario() {
    return $this->getSueldo() * 0.90; // Aplicamos un descuento del 10% al sueldo
}

} en esta parte del codigpo se aplica herencia dado que: La clase Diseñador extiende la clase Empleado, lo que significa que la clase Diseñador hereda todas las propiedades y métodos de la clase Empleado.

En el constructor de la clase Diseñador, se llama al constructor de la clase padre Empleado utilizando parent::__construct($nombre, $sueldo), lo que permite inicializar las propiedades $nombre y $sueldo heredadas de la clase Empleado.

Además, la clase Diseñador agrega una nueva propiedad $trabajo y métodos específicos como getTrabajo(), actividad() y calcularSalario(). Estos métodos son propios de la clase Diseñador y no existen en la clase Empleado.

La clase Diseñador hereda las propiedades y métodos de la clase Empleado y también tiene sus propias propiedades y métodos adicionales.

tecestela2022 commented 1 month ago

Con respecto al polimorfosmo:

Se puede ver en la imlementacion de los metodos: calcularSalario(), en las clases Empleado, Diseñador y Desarrollador. Cada una de estas clases pertenece al metodo calcularsalario() y puede ser adaptada a las necesidades de cada empleado.

En la clase empleados podemos verlo en:

public funtion calcularsalario() { retum $this $this->sueldo * 0.90; // con esto se aplica el descuento del 10% }

En la clase disenador:

public function calcularSalario() { return $this->getSueldo() * 0.90; // como en el caso anterior se aplica el 10 % de descuento }

En la clase desarrollador:

public function calcularSalario() { return $this->getSueldo() * 0.90; //como en el caso anterior se aplica el 10 % de descuento }

Esto permite que al llamar al método calcularSalario() en un objeto de tipo Empleado.