3 Coche
Coche
"; 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 ------------------------- */
?>