Clases y objetos

Código fuente PHP

// 015-CodigoPHP.php
// Versión 1.0 11/12/2017 Juan Manuel Cueva Lovelle. Universidad de Oviedo
// Versión 1.1 12/12/2017 Juan Manuel Cueva Lovelle. Universidad de Oviedo

/**
 * Definición de la clase Vehiculo
 */
class Vehiculo {
    // Las constantes de clase están asignadas una vez por clase, y no por cada instancia de la clase
    const PAISFABRICACION = "VW0";
    const FACTORIA = "T0270000V";
    protected $matricula;
    protected $modelo;
    protected $propietario;
    protected static $numeroVehiculosProducidos = 0;
    private $numeroBastidor;
    
    public function __construct($matricula, $modelo, $propietario){
        $this->matricula = $matricula;
        $this->modelo = $modelo;
        $this->propietario = $propietario;
        self::$numeroVehiculosProducidos++;
        $this->numeroBastidor = self::PAISFABRICACION . self::FACTORIA . self::$numeroVehiculosProducidos;
    }
    
    public function getMatricula(){
        return $this->matricula;
    }
    
    public function getModelo(){
        return $this->modelo;
    }

    public function getPropietario(){
        return $this->propietario;
    }

    public function setPropietario($propietario){
        $this->propietario = $propietario;
    }
    
    public function getNumeroVehiculosProducidos() {
        return self::$numeroVehiculosProducidos;
    }
    
    public function getNumeroBastidor(){
        return $this->numeroBastidor;
    }
    
    public function ver(){
        $cadena = "Matrícula: " .$this->getMatricula() . " Modelo: " .$this->getModelo(). " Propietario: ". $this->getPropietario(). " Número de bastidor: " . $this->getNumeroBastidor();
        return $cadena;
    }
}

$auris = new Vehiculo("1111-DDD","Auris Sport", "Juan Manuel");
$seat = new Vehiculo("3333-PPP","Ibiza GTi", "Cris");
$camaro = new Vehiculo("7777-XXX","Camaro", "Guillermo");
$mondeo = new Vehiculo("2222-AAA","Mondeo", "Antonio");
    
echo "<p>Número de vehiculos producidos: " .Vehiculo::getNumeroVehiculosProducidos(). "</p>";

echo "<p>" .$auris->ver(). "</p>";
echo "<p>" .$seat->ver(). "</p>";
echo "<p>" .$camaro->ver(). "</p>";
echo "<p>" .$mondeo->ver(). "</p>";

$mondeo->setPropietario("Paloma");

echo "<p>Nuevo propietario</p>";

echo "<p>" .$mondeo->ver(). "</p>";

Ejecución del código PHP

Número de vehiculos producidos: 4

Matrícula: 1111-DDD Modelo: Auris Sport Propietario: Juan Manuel Número de bastidor: VW0T0270000V1

Matrícula: 3333-PPP Modelo: Ibiza GTi Propietario: Cris Número de bastidor: VW0T0270000V2

Matrícula: 7777-XXX Modelo: Camaro Propietario: Guillermo Número de bastidor: VW0T0270000V3

Matrícula: 2222-AAA Modelo: Mondeo Propietario: Antonio Número de bastidor: VW0T0270000V4

Nuevo propietario

Matrícula: 2222-AAA Modelo: Mondeo Propietario: Paloma Número de bastidor: VW0T0270000V4