Métodos
Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 6 de 110.
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:
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;
}
}Las firmas de los métodos en Dart siempre incluyen un tipo de retorno. Usa void cuando el método no devuelve nada.
Crea un objeto calculadora:
Calculator myCalc = Calculator();Llama a un método que no necesita parámetros:
myCalc.greet();Llama a métodos con parámetros y captura el valor de retorno:
int sumResult = myCalc.add(5, 3);
print(sumResult);Llama a un método que imprime y devuelve un valor:
int product = myCalc.multiply(4, 7);Resultado:
Hello! I am a calculator.
8
4 x 7 = 28Los métodos pueden:
- Tener un tipo de retorno como
int add(int a, int b) - Devolver valores usando
return - Imprimir salida directamente usando
print() - Ser
voidcuando no devuelven nada
Punto clave: Llama a métodos en objetos usando el operador de punto: object.methodName(args).
Desafío
FácilCrea una clase BankAccount en bank_account.dart con:
- Una variable de instancia
double balanceestablecida en0 - Un método
depositque toma undouble amounty lo suma abalance - Un método
withdrawque toma undouble amounty lo resta debalance - Un método
getBalanceque devuelve elbalanceactual
Luego, en driver.dart, crea una cuenta, 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 comportamientos que los objetos pueden realizar.
Define métodos con un tipo de retorno. Usa void cuando el método no devuelve nada:
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;
}
}Llama a los métodos en los objetos usando el operador de punto:
Calculator myCalc = Calculator();
myCalc.greet(); // Sin parámetros
int sumResult = myCalc.add(5, 3); // Con parámetros, captura el valor de retorno
print(sumResult);
int product = myCalc.multiply(4, 7); // Imprime y devuelveLos métodos pueden tener tipos de retorno, devolver valores usando return, imprimir la salida directamente usando print(), o ser void cuando no devuelven nada.
Pruébalo tú mismo
import 'bank_account.dart';
void main() {
BankAccount myAccount = BankAccount();
myAccount.balance = 0;
// TODO: Depositar 100
// TODO: Retirar 30
// TODO: Imprimir el balance en el formato: 'Current balance: $[balance]'
// Hint: usa .toInt() en el balance para una salida limpia
}
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 POO
Archivos externosLibrerías e importacionesIntroducción a la POOClases vs. ObjetosLa palabra clave thisMétodosVariables de instanciaConceptos básicos de constructoresResumen - Calculadora sencilla4Seguridad de nulos
Introducción a la seguridad de nulosNulables vs No nulablesLos operadores ? y !Palabra clave Late y Null SafetyOperadores Null-awareNull Safety en clasesResumen - Sistema de perfil de usuario7Clases abstractas e interfaces
Clases abstractasMétodos abstractosInterfaces en DartInterfaces implícitasImplementar vs. ExtenderInterfaces múltiplesRepaso - Calculadora de figuras10Colecciones y Genéricos
Visión general de List, Set y MapColecciones con seguridad de tiposClases genéricasMétodos genéricosRestricciones genéricasIterable e IteratorResumen - Almacenamiento genérico2Constructores en Dart
Constructor por defectoConstructores nombradosListas de inicializaciónConstructores constantesConstructores de fábricaConstructores de redireccionamientoResumen - Constructor de formas5Encapsulamiento
Miembros públicos vs. privadosLa convención del prefijo _Privacidad a nivel de libreríaProfundidad en Getters y SettersOcultamiento de informaciónResumen - Registros de estudiantes8Mixins
Introducción a los MixinsCreación de MixinsUso de múltiples MixinsPalabra clave on en MixinsMixin vs HerenciaMixin vs InterfazResumen - Sistema Animal11Métodos especiales
Sobrescritura de toString()Sobrescritura de hashCode y ==Interfaz ComparableMétodo call()Sobrescritura de noSuchMethodResumen - Colección personalizada14Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy3Propiedades de clase
Miembros de instancia vs. estáticosCampos Final y ConstVariables LateMétodos y campos estáticosGetters y SettersResumen - Gestor de cuentas bancarias6Herencia
Herencia básicaLa palabra clave superSobrescritura de métodosLa anotación @overrideLa palabra clave final en clasesConstructores y herenciaResumen - Jerarquía de empleados9Polimorfismo
Fundamentos del polimorfismoPolimorfismo mediante interfacesComprobación de tipos en tiempo de ejecuciónLos operadores is y asPalabra clave covariantResumen - Procesador de pagos12POO Asíncrona
Futures y async/awaitFundamentos de StreamsStream ControllersConstructores asíncronosAsincronía en métodos de claseRepaso - Data Fetcher15Patrones de diseño Parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón CompositePatrón Repository