118 lines
3.2 KiB
PHP
118 lines
3.2 KiB
PHP
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>INTRO8 POO EN PHP</title>
|
|
|
|
</head>
|
|
<body>
|
|
<h1>POO EN PHP</h1>
|
|
<h2>Clases en POO</h2>
|
|
<?php
|
|
|
|
// Definición de la clase
|
|
class Coche {
|
|
// Propiedades
|
|
public $marca;
|
|
public $modelo;
|
|
public $color;
|
|
|
|
// Método constructor
|
|
public function __construct($marca, $modelo, $color) {
|
|
$this->marca = $marca;
|
|
$this->modelo = $modelo;
|
|
$this->color = $color;
|
|
}
|
|
|
|
// Método para mostrar la información del coche
|
|
public function mostrarInformacion() {
|
|
echo "Marca: " . $this->marca . "<br>";
|
|
echo "Modelo: " . $this->modelo . "<br>";
|
|
echo "Color: " . $this->color . "<br>";
|
|
}
|
|
}
|
|
|
|
// Creación de un objeto (instancia de la clase Coche)
|
|
$miCoche = new Coche("Toyota", "Corolla", "Rojo");
|
|
|
|
var_dump($miCoche);
|
|
$miCoche->marca = "Seat"; // Modificar una propiedad
|
|
var_dump($miCoche);
|
|
|
|
|
|
// Acceso a las propiedades del objeto y llamada a un método
|
|
echo "<h2>Información de mi coche:</h2>";
|
|
$miCoche->mostrarInformacion();
|
|
|
|
//Herencia
|
|
// Definición de la clase hija CocheDeportivo que hereda de Coche (Superclase y subclase)
|
|
class CocheDeportivo extends Coche {
|
|
// Propiedades adicionales para un coche deportivo
|
|
public $potencia;
|
|
public $aceleracion;
|
|
|
|
// Método constructor
|
|
public function __construct($marca, $modelo, $color, $potencia, $aceleracion) {
|
|
// Llamada al constructor de la clase padre
|
|
parent::__construct($marca, $modelo, $color);
|
|
// Asignación de las propiedades adicionales
|
|
$this->potencia = $potencia;
|
|
$this->aceleracion = $aceleracion;
|
|
}
|
|
|
|
// Método para mostrar información específica de un coche deportivo
|
|
public function mostrarInformacionDeportiva() {
|
|
//parent::mostrarInformacion();
|
|
echo "Potencia: " . $this->potencia . "<br>";
|
|
echo "Aceleración: " . $this->aceleracion . "<br>";
|
|
}
|
|
}
|
|
|
|
// Creación de un objeto CocheDeportivo
|
|
$miCocheDeportivo = new CocheDeportivo("Ferrari", "458 Italia", "Rojo", "570 CV", "3,4 segundos");
|
|
|
|
// Acceso a los métodos de la clase base y de la clase hija
|
|
echo "<h2>Información de mi coche deportivo:</h2>";
|
|
$miCocheDeportivo->mostrarInformacion(); // Método de la clase base
|
|
$miCocheDeportivo->mostrarInformacionDeportiva(); // Método de la clase hija
|
|
|
|
|
|
// Encapsulación
|
|
class Persona {
|
|
private $nombre;
|
|
private $edad;
|
|
|
|
public function __construct($nombre, $edad) {
|
|
$this->nombre = $nombre;
|
|
$this->edad = $edad;
|
|
}
|
|
|
|
public function getNombre() {
|
|
return $this->nombre;
|
|
}
|
|
|
|
public function setNombre($nombre) {
|
|
$this->nombre = $nombre;
|
|
}
|
|
|
|
public function getEdad() {
|
|
return $this->edad;
|
|
}
|
|
|
|
public function setEdad($edad) {
|
|
$this->edad = $edad;
|
|
}
|
|
}
|
|
|
|
$persona = new Persona("Juan", 30);
|
|
|
|
//$persona->nombre = "Pedro";Acceso privado
|
|
//echo $persona->nombre; // Acceso privado
|
|
echo "Nombre: " . $persona->getNombre() . ", Edad: " . $persona->getEdad();
|
|
|
|
?>
|
|
|
|
|
|
</body>
|
|
</html>
|