Métodos
Parte de la sección Programación Orientada a Objetos del Journey de PHP de Coddy — lección 5 de 91.
Los métodos son funciones que pertenecen a una clase. Definen los comportamientos o acciones que los objetos pueden realizar.
Aquí hay un ejemplo de una clase con métodos:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}Crea un objeto calculadora:
$myCalc = new Calculator();Llama a un método que no necesita parámetros:
$myCalc->greet();Llamar a métodos con parámetros:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";Llama a un método que imprime y devuelve un valor:
$product = $myCalc->multiply(4, 7);Resultado:
Hello! I'm a calculator.
8
4 × 7 = 28Los métodos pueden:
- Recibir parámetros como
add($a, $b) - Devolver valores como
return $a + $b;
- Imprime la salida directamente como
echo "Hello!"; - Realiza tanto la impresión como el retorno
Punto clave: Los métodos definen lo que sus objetos pueden hacer. Use las palabras clave public function para definir un método dentro de una clase. Llame a los métodos usando el operador -> en un objeto.
Desafío
FácilCrea una clase BankAccount en bank_account.php con:
- Una propiedad
public $balance - Un método
depositque toma una cantidad y la suma al saldo - Un método
withdrawque toma una cantidad y la resta del saldo - Un método
getBalanceque devuelve el saldo actual
Luego en driver.php, crea una cuenta con un saldo de 0, deposita $100, retira $30 y muestra el saldo en el formato: "Current balance: $[balance]"
Hoja de referencia
Los métodos son funciones que pertenecen a una clase y definen los comportamientos o acciones que los objetos pueden realizar.
Define métodos dentro de una clase usando public function:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}Llama a los métodos usando el operador -> en un objeto:
$myCalc = new Calculator();
$myCalc->greet();
$sumResult = $myCalc->add(5, 3);
$product = $myCalc->multiply(4, 7);Los métodos pueden:
- Tomar parámetros:
add($a, $b) - Devolver valores:
return $a + $b; - Imprimir salida:
echo "Hello!"; - Hacer tanto la impresión como la devolución
Pruébalo tú mismo
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: Depositar 100
// TODO: Retirar 30
// TODO: Imprimir el saldo en el formato: "Current balance: $[balance]"
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Fundamentos de OOP
Archivos externosIntroducción a OOPClases vs ObjetosLa palabra clave $thisMétodosPropiedadesConstructor (__construct)Destructor (__destruct)Resumen - Calculadora simple4Herencia
Herencia básicaLa palabra clave parent::Sobrescritura de métodosLa palabra clave finalClases abstractasResumen - Jerarquía de empleados7Encapsulamiento
Público, Protegido, PrivadoModificadores de acceso a fondoGetters y SettersOcultamiento de informaciónPromoción de constructor (8.0)Resumen - Sistema de registros de estudiantes10Conceptos avanzados de POO
Composición vs. HerenciaInyección de dependenciasClases anónimasEnums (PHP 8.1)Fibers (PHP 8.1)Clonación de objetos a fondoGeneradores e Iteradores13Patrones de diseño Parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón CompositePatrón Repository2Espacios de nombres y Autoloading
Introducción a los espacios de nombresLa palabra clave useEstándar de Autoloading PSR-4Autoloader de ComposerResumen - Proyecto organizado5Interfaces y Contratos
Introducción a las InterfacesImplementación de InterfacesImplementación de Múltiples InterfacesInterfaz vs Clase AbstractaType Hinting con InterfacesResumen - Calculadora de Formas8Métodos mágicos
Introducción a los métodos mágicos__toString y __debugInfo__get, __set, __isset, __unset__call y __callStatic__clone y clonación de objetos__serialize y __unserializeResumen - Colección personalizada3Propiedades de clase
Propiedades de instancia vs. estáticasConstantes en clasesMétodos y propiedades estáticosPropiedades privadas y protegidasPropiedades de solo lectura (PHP 8.1)Resumen - Gestor de cuenta bancaria6Polimorfismo
Sobrescritura de métodos revisadaPolimorfismo mediante interfacesType Hinting y tipos de uniónEnlace estático tardíoResumen - Procesador de pagos9Traits
Introducción a los TraitsUso de múltiples TraitsResolución de conflictos de TraitsMétodos abstractos en TraitsTraits frente a herencia12Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy