Skip to content

3 Coche

Coche

Coches get_ruedas() . " ruedas
"; echo "El volvo tiene " . $volvo->get_ruedas() . " ruedas
"; echo "El mazda tiene " . $mazda->get_motor() . " de motor
"; echo "El volvo tiene " . $volvo->get_motor() . " de motor
"; ?>

Concesionario

<?php
//Archivo donde se almacenan todas las clases para crear objetos.

    class Compra_vehiculo{

        private $precio_base;
        //Se trata de un atributo que comparten todos los objetos
        private static $ayuda=0;

        //Método constructor por defecto.
        function __construct($gama){
            if ($gama=="urbano") {
                $this->precio_base=10000;
            } else if ($gama=="compacto") {
                $this->precio_base=20000;
            } else if ($gama=="berlina") {
                $this->precio_base=30000;
            }

        }

        //Funcion la cual se aplica en caso de que la fecha actual sea mayor que "12-02-22".
        static function descuento_gobierno(){
            //if(true){
            if(date("Y-m-d") > "2022-01-01" ){
                self::$ayuda=4500;
                echo "<br/> Se ha creado una ayuda de " . self::$ayuda;
            }
            else
            echo "<br/> No se ha creado ninguna ayuda , ayuda =" . self::$ayuda;
        }

        //Funciones la cual se ejecuta al llamarlas mediante un objeto creado.
        function climatizador(){
            $this->precio_base+=2000;
        }

        function navegador_gps(){
            $this->precio_base+=2500;
        }

        function tapiceria_cuero($color){
            if ($color == "blanco") {
                $this->precio_base+=3000;
            } else if ($color == "beige"){
                $this->precio_base+=3500;
            } else {
                $this->precio_base+=5000;
            }

        }

        //Funcion para imprimir el precio final ya aplicado el descuento.
        function precio_final(){
            $valor_final=$this->precio_base-self::$ayuda;
            return "<br/>". $valor_final;
        }


    }
//

?>

Uso_Concesionario

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Curso_Pildoras</title>
</head>

<body>
<?php


    //Importacion de las clases que se encuentran en un archivo externo.
    include 'Concesionario.php';

    //Modificacion de la variable estatica $ayuda.


    Compra_vehiculo::descuento_gobierno();
    //echo "<br/><br/> La ayuda es " . Compra_vehiculo::$ayuda;

    //Se crea el coche de antonio con sus extras y modelo expecifico. Finaliza imprimiendo el precio final.
    $compra_Antonio = new Compra_vehiculo("compacto");
    $compra_Antonio->climatizador();
    $compra_Antonio->tapiceria_cuero("blanco");
    echo $compra_Antonio->precio_final() . "<br>";

    //Se crea el coche de Ana con sus extras y modelo expecifico. Finaliza imprimiendo el precio final.
    $compra_Ana = new Compra_vehiculo("compacto");
    $compra_Ana->climatizador();
    $compra_Ana->tapiceria_cuero("rojo");
    echo $compra_Ana->precio_final() . "<br>";


    ?>
</body>

</html>

Vehiculos

<?php
//Archivo donde se almacenan todas las clases para crear objetos como puede ser un coche.

      //Clase con la cual se crearan objetos. Disponiendo de tres variables para todos los objetos creados.
    class Coche{
        //En vez de utilizar var usaresmos (private, protected o public)
        protected $ruedas;
        protected $color;
        protected $motor;

        //Método constructor por defecto. El que se utiliza en el video es un método deprecated. En las nuevas versiones se indica con '__contruct'. 
        function Coche(){  
            $this->ruedas=4;
            $this->color="";
            $this->motor=1600;

        }

        //Funciones para acceder a las variables del objeto.(getters y setters).
        function get_ruedas(){
            return $this->ruedas;
        }
        function get_color(){
            return $this->color;
        }
        function get_motor(){
            return $this->motor;
        }

        //Funciones la cual se ejecuta al llamarlas mediante un objeto creado.
        function arrancar(){
            echo "Estoy arrancando <br>";
        }

        function girar(){
            echo "Estoy girando <br>";
        }

        function frenar(){
            echo "Estoy frenando <br>";
        }

        //Nueva funcion la cual recive dos parametros con los cuales cambia el color independiente de cada objeto.
        function establece_color($color_coche, $modelo_coche){
            $this->$color_coche;
            echo "El color de " . $modelo_coche . " es: " . $this->color . "<br>";
        }
    }


    /* -------------------------   NUEVA CLASE CAMION  ------------------------- */

    //Todas las caracteristicas de coche las adquiere camion tan solo con extends.
    class Camion extends Coche{

        function __construct(){
            $this->ruedas=8;
            $this->color="Gris";
            $this->motor=2600;

        }

        //Nueva funcion la cual recive dos parametros con los cuales cambia el color independiente de cada objeto.
        function establece_color($color_camion, $modelo_camion){
            $this->$color_camion;
            echo "El color de " . $modelo_camion . " es: " . $this->color . "<br>";
        }

        function arrancar(){
            //Ejecuta el codigo de la funcion padre (coche) arrancar(); y las nuevas lineas de codigo solo para camiones.
            parent:: arrancar();
            echo "Camion arrancado <br>";
        }
    }


    /* -------------------------   NUEVA CLASE CAMION  ------------------------- */
?>