IFCD0210/Practicas/Practicas_PHP/POO/INTRO8_PHP_POO.php
2024-02-29 13:50:34 +01:00

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>