php
This commit is contained in:
117
Practicas/Practicas_PHP/POO/INTRO8_PHP_POO.php
Normal file
117
Practicas/Practicas_PHP/POO/INTRO8_PHP_POO.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user