Programación Orientada a Objetos en PHP
Programación Orientada a Objetos en PHP
ejemplo1:
<?php
class Producto {
public function __construct(public string $nombre, public int $precio, public bool $disponible)
{
}
public function mostrarProducto() {
echo "El Producto es: " . $this->nombre . " y su precio es de: " . $this->precio;
}
}
// Creando objetos a partir de la clase Producto
$producto = new Producto('Tablet', 200, true);
$producto->mostrarProducto();
echo "<pre>";
var_dump($producto);
echo "</pre>";
$producto2 = new Producto('Monitor Curvo', 300, true);
$producto2->mostrarProducto();
echo "<pre>";
var_dump($producto2);
echo "</pre>";
?>
ejemplo2:
<?php
class Producto {
// Public - Se puede acceder y modificar en cualquier lugar (clase y objeto)
// protected - Se puede acceder / modificar unicamente en la clase
// private solo miembros de la misma clase pueden acceder a el
public function __construct(protected string $nombre, public int $precio, public bool $disponible)
{
}
public function mostrarProducto() : void {
echo "El Producto es: " . $this->nombre . " y su precio es de: " . $this->precio;
}
public function getNombre() : string {
return $this->nombre;
}
public function setNombre(string $nombre) {
$this->nombre = $nombre;
}
}
$producto = new Producto('Tablet', 200, true);
// $producto->mostrarProducto();
echo $producto->getNombre();
$producto->setNombre('Nuevo Nombre');
echo "<pre>";
var_dump($producto);
echo "</pre>";
$producto2 = new Producto('Monitor Curvo', 300, true);
// $producto2->mostrarProducto();
echo $producto2->getNombre();
// echo "<pre>";
// var_dump($producto2);
// echo "</pre>";
?>
ejemplo3:
<?php
class Producto {
public $imagen;
public static $imagenPlaceholder = "Imagen.jpg";
public function __construct(protected string $nombre, public int $precio, public bool $disponible, string $imagen)
{
if($imagen) {
self::$imagenPlaceholder = $imagen;
}
}
public static function obtenerImagenProducto() {
return self::$imagenPlaceholder;
}
public static function obtenerProducto() {
echo "Obteniendo datos del Producto...";
}
public function mostrarProducto() : void {
echo "El Producto es: " . $this->nombre . " y su precio es de: " . $this->precio;
}
public function getNombre() : string {
return $this->nombre;
}
public function setNombre(string $nombre) {
$this->nombre = $nombre;
}
}
$producto = new Producto('Tablet', 200, true, '');
// $producto->mostrarProducto();
echo $producto->obtenerImagenProducto();
echo $producto->getNombre();
$producto->setNombre('Nuevo Nombre');
echo "<pre>";
var_dump($producto);
echo "</pre>";
$producto2 = new Producto('Monitor Curvo', 300, true, 'monitorCurvo.jpg');
// $producto2->mostrarProducto();
echo $producto2->getNombre();
echo $producto2->obtenerImagenProducto();
// echo "<pre>";
// var_dump($producto2);
// echo "</pre>";
?>
ejemplo4:
<?php
class Transporte {
public function __construct(protected int $ruedas, protected int $capacidad)
{
}
public function getInfo() : string {
return "El transporte tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas ";
}
public function getRuedas() : int {
return $this->ruedas;
}
}
interface TransporteInterfaz {
public function getInfo() : string;
public function getRuedas() : int;
}
class Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad)
{
}
public function getInfo() : string {
return "El transporte tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas ";
}
public function getRuedas() : int {
return $this->ruedas;
}
}
interface TransporteInterfaz {
public function getInfo() : string;
public function getRuedas() : int;
}
class Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad)
{
}
public function getInfo() : string {
return "El transporte tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas ";
}
public function getRuedas() : int {
return $this->ruedas;
}
}
class Automovil extends Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad, protected string $color)
{
}
public function getInfo() : string {
return "El transporte AUTO tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas y tiene el color" . $this->color;
}
public function getColor() : string {
return "El color es " . $this->color;
}
}
echo "<pre>";
var_dump($transporte = new Transporte(8, 20));
var_dump($auto = new Automovil(4, 4, 'Rojo'));
echo $transporte->getInfo();
echo "<br>";
echo $auto->getInfo();
echo "<br>";
echo $auto->getColor();
echo "</pre>";
?>
ejemplo5:
<?php
$bicicleta = new Bicicleta(2, 1);
echo $bicicleta->getInfo();
echo $bicicleta->getRuedas();
echo "<hr>";
$auto = new Automovil(4, 4, 'Manual');
echo $auto->getInfo();
echo $auto->getTransmision();
?>
ejemplo6:
<?php
interface TransporteInterfaz {
public function getInfo() : string;
public function getRuedas() : int;
}
class Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad)
{
}
public function getInfo() : string {
return "El transporte tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas ";
}
public function getRuedas() : int {
return $this->ruedas;
}
}
interface TransporteInterfaz {
public function getInfo() : string;
public function getRuedas() : int;
}
class Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad)
{
}
public function getInfo() : string {
return "El transporte tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas ";
}
public function getRuedas() : int {
return $this->ruedas;
}
}
class Automovil extends Transporte implements TransporteInterfaz {
public function __construct(protected int $ruedas, protected int $capacidad, protected string $color)
{
}
public function getInfo() : string {
return "El transporte AUTO tiene " . $this->ruedas . " ruedas y una capacidad de " . $this->capacidad . " personas y tiene el color" . $this->color;
}
public function getColor() : string {
return "El color es " . $this->color;
}
}
echo "<pre>";
var_dump($transporte = new Transporte(8, 20));
var_dump($auto = new Automovil(4, 4, 'Rojo'));
echo $transporte->getInfo();
echo "<br>";
echo $auto->getInfo();
echo "<br>";
echo $auto->getColor();
echo "</pre>";
?>
Comentarios
Publicar un comentario