Métodos
Parte da seção Programação Orientada a Objetos do Journey de PHP da Coddy — lição 5 de 91.
Métodos são funções que pertencem a uma classe. Eles definem os comportamentos ou ações que os objetos podem realizar.
Aqui está um exemplo de uma classe com 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;
}
}Crie um objeto calculadora:
$myCalc = new Calculator();Chame um método que não precisa de parâmetros:
$myCalc->greet();Chame métodos com parâmetros:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";Chame um método que imprime e retorna um valor:
$product = $myCalc->multiply(4, 7);Saída:
Hello! I'm a calculator.
8
4 × 7 = 28Métodos podem:
- Receber parâmetros como
add($a, $b) - Retornar valores como
return $a + $b;
- Imprima a saída diretamente como
echo "Hello!"; - Realize tanto a impressão quanto o retorno
Ponto Chave: Métodos definem o que seus objetos podem fazer. Use as palavras-chave public function para definir um método dentro de uma classe. Chame métodos usando o operador -> em um objeto.
Desafio
FácilCrie uma classe BankAccount em bank_account.php com:
- Uma propriedade
public $balance - Um método
depositque recebe um valor e o adiciona ao saldo - Um método
withdrawque recebe um valor e o subtrai do saldo - Um método
getBalanceque retorna o saldo atual
Então em driver.php, crie uma conta com saldo 0, deposite $100, retire $30 e imprima o saldo no formato: "Current balance: $[balance]"
Folha de consulta
Métodos são funções que pertencem a uma classe e definem os comportamentos ou ações que os objetos podem realizar.
Defina métodos dentro de uma classe 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;
}
}Chame métodos usando o operador -> em um objeto:
$myCalc = new Calculator();
$myCalc->greet();
$sumResult = $myCalc->add(5, 3);
$product = $myCalc->multiply(4, 7);Os métodos podem:
- Receber parâmetros:
add($a, $b) - Retornar valores:
return $a + $b; - Imprimir saída:
echo "Hello!"; - Fazer tanto a impressão quanto o retorno
Experimente você mesmo
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: Depositar 100
// TODO: Sacar 30
// TODO: Imprimir o saldo no formato: "Current balance: $[balance]"
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosA Palavra-chave $thisMétodosPropriedadesConstrutor (__construct)Destrutor (__destruct)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Palavra-chave parent::Sobrescrita de MétodoA Palavra-chave finalClasses AbstratasRecapitulação - Hierarquia de Funcionários7Encapsulamento
Público, Protegido, PrivadoModificadores de Acesso em DetalhesGetters e SettersOcultação de InformaçãoPromoção de Construtor (8.0)Recapitulação - Sistema de Registro de Alunos10Conceitos Avançados de POO
Composição vs HerançaInjeção de DependênciaClasses AnônimasEnums (PHP 8.1)Fibers (PHP 8.1)Mergulho Profundo em Clonagem de ObjetosGeradores e Iteradores13Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão CompositePadrão Repository2Namespaces e Autoloading
Introdução a NamespacesA Palavra-chave usePadrão de Autoloading PSR-4Autoloader do ComposerRecapitulação - Projeto Organizado5Interfaces e Contratos
Introdução a InterfacesImplementando InterfacesImplementação de Múltiplas InterfacesInterface vs Classe AbstrataType Hinting com InterfacesRecapitulação - Calculadora de Formas8Métodos Mágicos
Introdução aos Métodos Mágicos__toString e __debugInfo__get, __set, __isset, __unset__call e __callStatic__clone e Clonagem de Objetos__serialize e __unserializeRecapitulação - Coleção Personalizada11Sistema de Tipos e Tratamento de Erros
Declarações de TiposTipos AnuláveisTipos de União e InterseçãoClasses de ExceçãoHierarquia de Exceções PersonalizadasTry, Catch, FinallyRecapitulação - Validador de Formulário14Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário3Propriedades de Classe
Propriedades de Instância vs EstáticasConstantes em ClassesMétodos e Propriedades EstáticosPropriedades Privadas e ProtegidasPropriedades Readonly (PHP 8.1)Recapitulação - Gerenciador de Conta Bancária6Polimorfismo
Sobrescrita de Métodos RevisitadaPolimorfismo via InterfacesType Hinting e Union TypesLate Static BindingRecapitulação - Processador de Pagamentos9Traits
Introdução a TraitsUsando Múltiplos TraitsResolução de Conflitos de TraitsMétodos Abstratos em TraitsTraits vs Herança12Padrões de Projeto Parte 1
Introdução aos Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy