Métodos
Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy. Lição 6 de 110.
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:
class Calculator {
void greet() {
print('Hello! I am a calculator.');
}
int add(int a, int b) {
return a + b;
}
int multiply(int x, int y) {
int result = x * y;
print('$x x $y = $result');
return result;
}
}Assinaturas de método no Dart sempre incluem um tipo de retorno. Use void quando o método não retornar nada.
Crie um objeto calculadora:
Calculator myCalc = Calculator();Chame um método que não precisa de parâmetros:
myCalc.greet();Chame métodos com parâmetros e capture o valor de retorno:
int sumResult = myCalc.add(5, 3);
print(sumResult);Chame um método que imprime e retorna um valor:
int product = myCalc.multiply(4, 7);Saída:
Hello! I am a calculator.
8
4 x 7 = 28Métodos podem:
- Ter um tipo de retorno como
int add(int a, int b) - Retornar valores usando
return - Imprimir a saída diretamente usando
print() - Ser
voidquando não retornam nada
Ponto Chave: Chame métodos em objetos usando o operador de ponto: object.methodName(args).
Desafio
FácilCrie uma classe BankAccount em bank_account.dart com:
- Uma variável de instância
double balancedefinida como0 - Um método
depositque recebe umdouble amounte o adiciona aobalance - Um método
withdrawque recebe umdouble amounte o subtrai dobalance - Um método
getBalanceque retorna obalanceatual
Então, em driver.dart, crie uma conta, deposite 100, retire 30 e imprima o saldo no formato: 'Current balance: $[balance]'
Experimente você mesmo
import 'bank_account.dart';
void main() {
BankAccount myAccount = BankAccount();
myAccount.balance = 0;
// TODO: Depositar 100
// TODO: Sacar 30
// TODO: Imprimir o saldo no formato: 'Current balance: $[balance]'
// Dica: use .toInt() no saldo para uma saída limpa
}
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 OOP
Arquivos externosBibliotecas e importsIntrodução à OOPClasses vs. objetosA palavra-chave thisMétodosVariáveis de instânciaNoções básicas de construtoresRevisão - Calculadora simples4Segurança contra nulos
Introdução à segurança contra nulosAnulável vs. não anulávelOs operadores ? e !Palavra-chave Late e segurança contra nulosOperadores conscientes de nulosSegurança contra nulos em classesRecapitulação — Sistema de perfil de usuário7Classes Abstratas e Interfaces
Classes AbstratasMétodos AbstratosInterfaces em DartInterfaces ImplícitasImplementação vs. ExtensãoMúltiplas InterfacesRecapitulação - Calculadora de Formas10Coleções e Genéricos
Visão geral de List, Set e MapColeções com segurança de tiposClasses genéricasMétodos genéricosRestrições genéricasIterable e IteratorRecapitulação - Armazenamento genérico13Conceitos Avançados de OOP
Composição vs. HerançaMétodos de ExtensãoClasses ChamáveisClasses Seladas (Dart 3)Registros (Dart 3)Padrões e Correspondência (3.0)Enums com Métodos16Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses de Livros e Usuários2Construtores em Dart
Construtor padrãoConstrutores nomeadosListas de inicializaçãoConstrutores constantesConstrutores factoryConstrutores de redirecionamentoRevisão - Construtor de formas5Encapsulamento
Membros Públicos vs. PrivadosConvenção do Prefixo _Privacidade no Nível da BibliotecaAprofundamento em Getters e SettersOcultação de InformaçõesRecapitulação - Registros de Alunos8Mixins
Introdução a MixinsCriando MixinsUsando vários MixinsPalavra-chave on em MixinsMixin vs HerançaMixin vs InterfaceRecapitulação - Sistema de Animais11Métodos Especiais
Sobrescrita de toString()Sobrescrita de hashCode e ==Interface ComparableMétodo call()Sobrescrita de noSuchMethodRecapitulação - Coleção Personalizada14Padrões de Projeto – Parte 1
Introdução aos Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy3Propriedades de Classe
Membros de Instância vs. EstáticosCampos Final e ConstVariáveis LateMétodos e Campos EstáticosGetters e SettersRecapitulação - Gerenciador de Contas Bancárias6Herança
Herança BásicaA Palavra-chave superSobrescrita de MétodosA Anotação @overrideA Palavra-chave final para ClassesConstrutores e HerançaRecapitulação - Hierarquia de Funcionários9Polimorfismo
Fundamentos do polimorfismoPolimorfismo por meio de interfacesVerificação de tipos em tempo de execuçãoOs operadores is e asPalavra-chave covarianteRecapitulação — Processador de pagamentos12OOP Assíncrona
Futures e async/awaitNoções básicas de StreamsControladores de StreamConstrutores assíncronosAsync em métodos de classeRecapitulação — Buscador de dados15Padrões de Projeto — Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão CompositePadrão RepositoryPratique por conta própria: Compilador de Dart online