Café y Código

4. Programación Orientada a Objetos 🏗️

Clases y Objetos en PHP

PHP moderno tiene un motor de Programación Orientada a Objetos (POO) sumamente robusto y similar al de Java o C#. Las clases se definen con la palabra clave class y las propiedades pueden tener tipos estrictos.

Clase Cafe
PHP
1 <?php
2 class Cafe {
3 public string $nombre;
4 public float $precio;
5
6 // El constructor se define usando __construct
7 public function __construct(string $nombre, float $precio) {
8 $this->nombre = $nombre;
9 $this->precio = $precio;
10 }
11
12 public function describir(): string {
13 return "El café {$this->nombre} tiene un costo de {$this->precio} USD.";
14 }
15 }

Instanciar un Objeto: la flecha (->)

Para instanciar un objeto usamos la palabra clave new. A diferencia de lenguajes que usan puntos (.), en PHP accedemos a las propiedades y métodos usando la flecha simple (->):

instanciar.php
PHP
1 <?php
2 $miCafe = new Cafe("Espresso", 2.50);
3
4 // Acceder a un método
5 echo $miCafe->describir();

Constructor Parameter Promotion (PHP 8+)

En PHP moderno (versión 8 en adelante), puedes ahorrar muchísimo código usando la promoción de propiedades directamente en los argumentos del constructor. Esto define la propiedad, su visibilidad y la asigna automáticamente:

Constructor promocionado
PHP
1 <?php
2 class Cafetera {
3 // Al colocar 'public' en el constructor, se definen y asignan solas
4 public function __construct(
5 public string $modelo,
6 public int $capacidadTazas
7 ) {}
8
9 public function encender(): string {
10 return "Cafetera {$this->modelo} lista para preparar {$this->capacidadTazas} tazas.";
11 }
12 }

Misión: Crea una Clase

🐍 Reto: El Tostado de Especialidad

Crea una clase llamada Tostado con propiedades públicas (nombre y precio) y un método que retorne la descripción. Instáncialo e imprímelo en pantalla.

👁️ Ver solución sugerida
Solución
PHP
1 <?php
2 class Tostado {
3 public function __construct(
4 public string $nombre,
5 public float $precio
6 ) {}
7
8 public function obtenerFicha(): string {
9 return "Tostado {$this->nombre}: $$this->precio USD\n";
10 }
11 }
12
13 $miTostado = new Tostado("Jamón y Queso", 4.20);
14 echo $miTostado->obtenerFicha();

Pon a prueba tu conocimiento de POO

Responde las preguntas de esta última lección para consolidar tu conocimiento sobre clases y objetos en PHP.

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.