domingo, 28 de diciembre de 2014

Ejercicios de Programacion Orientada a Objetos en PHP - 3 de 3



Cuatro_ruedas.class.php:

<?php
class Cuatro_ruedas extends vehículo
{
// Declaración de atributos
private $numero_puertas;
//accesos
public function getNumeroPuertas()
{
return $this->numero_puertas; //devuelve el número
//de puertas
}
public function setNumeroPuertas($numeros_puertas)
{
$this->numero_puertas = $numero_puertas; //escrito en
//el atributo número_puertas
}
//métodos públicos
public function retomar($color)
{
$this->setColor($color);
}
public function añadir_persona($peso_persona)
{
$this->setPeso($this->getPeso() + $peso_persona);
}
}
?>

Dos_ruedas.class.php:

<?php
class Dos_ruedas extends vehículo
{
// Declaración de atributos
private $cilindrada;
//accesos
public function getCilindrada()
{
return $this->cilindrada; //devuelve la cilindrada
}
public function setCilindrada($cilindrada)
{
$this->cilindrada = $cilindrada; //escrito en el
//atributo cilindrada
}
//método público
public function poner_gasolina($numerolitros)
{
$this->setPeso($this->getPeso()+$numerolitros);
}
public function añadir_persona($peso_persona)
{
$this->setPeso($this->getPeso() + $peso_persona + 2);
}
}
?>

Las otras clases no cambian.

Mostrar.php:

<?php
//carga de clases
include(’vehículo.class.php’);
include(’Cuatro_ruedas.class.php’);
include(’Dos_ruedas.class.php’);
include(’Camion.class.php’);
//instanciar los dos ruedas
$dos_ruedas = new Dos_ruedas("rojo",150);
$dos_ruedas->añadir_persona(70);
echo "El peso de dos ruedas es: ".$dos_ruedas->getPeso()."<br />";
$dos_ruedas->setColor("verde");
$dos_ruedas->setCilindrada(1000);
vehículo::mostrar_atributo($dos_ruedas);
echo "<br />";
//instanciar el camión
$camion = new Camion("blanco",6000);
$camion->añadir_persona(84);
$camion->setColor("azul");
$camion->setNumeroPuertas(2);
vehículo::mostrar_atributo($camión );
?>

Da como resultado:

El peso de dos ruedas es:222
El color es:verde
El peso es:222
La cilindrada es:1000
El color es:azul
El peso es:6084
El número de puertas es:2
La longitud es:


Solución del ejercicio 5

Vehículo.class.php:

<?php
abstract class vehículo
{
// Declaración de atributos
private $color;
private $peso;
const SALTO DE LÍNEA = ’<br />’;
static protected $numero_cambio_color=0;
//constructor
public function __construct($color, $peso)
//Constructor que solicita 2 argumentos.
{
$this->color = $color; // Inicialización del color.
$this->peso = $peso; // Inicialización del peso.
}
//accesos
public function getColor()
{
return $this->color; //devuelve el color
}
public function setColor($color)
{
$this->color = $color; //escrito en el atributo color
self::$numero_cambio_color =
elf::$numero_cambio_color + 1;
}
public function getPeso()
{
return $this->peso; //devuelve el peso
}
public function setPeso($peso)
{
if ($peso > 2100) {
$this->peso = 2100; //escrito en el atributo peso
}
else {
$this->peso = $peso; //escrito en el atributo peso
}
}
//métodos públicos
public function rouler()
{
echo "El vehículo circula.<br />";
}
public static functionver_atributo($objeto) {
if(method_exists($objeto,’getColor’)) {
echo "El color es:";
echo $objeto->getColor().self::SALTO DE LÍNEA;
}
if(method_exists($objeto,’getPeso’)) {
echo "El peso es:";
echo $objeto->getPeso().self::SALTO DE LÍNEA;
}
if(method_exists($objeto,’getCilindrada’)) {
echo "La cilindrada es:";
echo $objeto->getCilindrada().self::SALTO DE LÍNEA;
}
if(method_exists($objeto,’getPuerta’)) {
echo "El número de puertas es:";
echo $objeto->getNumeroPuertas().self::SALTO DE LÍNEA;
}
if(method_exists($objeto,’getLongitud’)) {
echo "La longitud es:";
echo $objeto->getLongitud().self::SALTO DE LÍNEA;
}
if(method_exists($objeto,’getNumeroNeumaticoNieve’)) {
echo "El número de cadenas para la nieve es:";
echo $objeto->getNumeroNeumaticoNieve().self::SALTO
DE LÍNEA;
}
echo "El color se ha cambiado";
echo self::$numero_cambio_color." vez.";
}
abstract public function añadir_persona($peso_persona);
}
?>

Cuatro_ruedas.class.php:

<?php
class Cuatro_ruedas extends vehículo
{
// Declaración de atributos
private $numero_puertas;
//constructor
public function __construct($color, $peso, $numero_puertas)
//Constructor que solicita 3 argumentos.
{
$this->setColor($color); // Inicialización del color.
$this->setPeso($peso); // Inicialización del peso.
$this->numero_puertas = $numero_puertas; // Inicialización
//del número de puertas.
}
//accesos
public function getNumeroPuertas()
{
return $this->numero_puertas; //devuelve el número de puertas
}
public function setNumeroPuertas($numero_puertas)
{
$this->numero_puertas = $numero_puertas; //escrito en
//el atributo número_puertas
}
//métodos públicos
public function retomar($color)
{
$this->setColor($color);
}
public function añadir_persona($peso_persona)
{
$this->setPeso($this->getPeso() + $peso_persona);
}
}
?>

Coche.class.php:

<?php
class Coche extends Cuatro_ruedas
{
// Declaración de atributos
private $numero_cadenas_nieve=0;
//accesos
public function getNumeroCadenasNieve()
{
return $this->numero_cadenas_nieve; //devuelve
//el numero_cadenas_nieve
}
public function setNumeroCadenasNieve
($numero_cadenas_nieve)
{
$this->numero_cadenas_nieve = $numero_cadenas_nieve;
//escrito en el atributo numero_cadenas_nieve
}
//métodos públicos
public function añadir_cadenas_nieve($numero)
{
$this->numero_cadenas_nieve =
$this->numero_cadenas_nieve + $;
}
public function quitar_cadenas_nieve($numero)
{
if ($this->numero_cadenas_nieve - $numero < 0) {
$this->numero_cadenas_nieve = 0;
}
else {
$this->numero_cadenas_nieve =
$this->numero_cadenas_nieve - $;
}
}
public function añadir_persona($peso_persona)
{
relativo::añadir_persona($peso_persona);
if ($this->getPeso() >= 1500 &&
$this->numero_cadenas_nieve <= 2)
{
echo "Atención, ponga 4 cadenas para la nieve.";
echo "<br />";
}
}
}
?>

Mostrar.php:

<?php
//carga de clases
include(’vehículo.class.php’);
include(’Cuatro_ruedas.class.php’);
include(’Coche.class.php’);
//instanciar el coche
$coche = new Coche("verde",2100,4);
$coche->añadir_cadenas_nieve(2);
$coche->añadir_persona(80);
$coche->setColor("azul");
$coche->quitar_cadenas_nieve(4);
$coche->repintar("negro");
vehículo::mostrar_atributo($coche);
?>

Da como resultado:

Atención, ponga 4 cadenas para la nieve.
El color es:negro
El peso es:2100
El número de puertas es:4
El número de cadenas para la nieve es:0
El color se ha cambiado 3 veces.



Espero haber ayudado en algo. Hasta la próxima oportunidad! 








No hay comentarios:

Publicar un comentario en la entrada