Metodi
Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 6 di 110.
I metodi sono funzioni che appartengono a una classe. Definiscono i comportamenti o le azioni che gli oggetti possono eseguire.
Ecco un esempio di una classe con metodi:
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;
}
}Le firme dei metodi in Dart includono sempre un tipo restituito. Usa void quando il metodo non restituisce nulla.
Crea un oggetto calcolatrice:
Calculator myCalc = Calculator();Chiama un metodo che non richiede parametri:
myCalc.greet();Chiama i metodi con parametri e acquisisci il valore restituito:
int sumResult = myCalc.add(5, 3);
print(sumResult);Chiama un metodo che stampa e restituisce un valore:
int product = myCalc.multiply(4, 7);Output:
Hello! I am a calculator.
8
4 x 7 = 28I metodi possono:
- Avere un tipo restituito come
int add(int a, int b) - Restituire valori usando
return - Stampare direttamente l'output usando
print() - Essere
voidquando non restituiscono nulla
Punto chiave: chiama i metodi sugli oggetti usando l’operatore punto: object.methodName(args).
Sfida
FacileCrea una classe BankAccount in bank_account.dart con:
- Una variabile di istanza
double balanceimpostata su0 - Un metodo
depositche accetta undouble amounte lo aggiunge abalance - Un metodo
withdrawche accetta undouble amounte lo sottrae dabalance - Un metodo
getBalanceche restituisce ilbalancecorrente
Poi, in driver.dart, crea un conto, deposita 100, preleva 30 e stampa il saldo nel formato: 'Current balance: $[balance]'
Provalo tu
import 'bank_account.dart';
void main() {
BankAccount myAccount = BankAccount();
myAccount.balance = 0;
// TODO: Deposita 100
// TODO: Preleva 30
// TODO: Stampa balance nel formato: 'Current balance: $[balance]'
// Suggerimento: usa .toInt() su balance per ottenere un output pulito
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione orientata agli oggetti
File esterniLibrerie e importazioniIntroduzione alla programmazione orientata agli oggettiClassi e oggettiLa parola chiave thisMetodiVariabili di istanzaFondamenti dei costruttoriRiepilogo - Calcolatrice semplice4Sicurezza dei valori null
Introduzione alla sicurezza dei valori nullNullable e non nullableGli operatori ? e !La keyword late e la sicurezza dei valori nullOperatori null-awareSicurezza dei valori null nelle classiRiepilogo - Sistema di profili utente7Classi astratte e interfacce
Classi astratteMetodi astrattiInterfacce in DartInterfacce impliciteImplementare vs estendereInterfacce multipleRiepilogo - Calcolatore di forme10Collezioni e generici
Panoramica di List, Set e MapCollezioni sicure rispetto ai tipiClassi genericheMetodi genericiVincoli sui genericiIterable e IteratorRiepilogo - Archiviazione generica13Concetti avanzati di OOP
Composizione vs ereditarietàMetodi di estensioneClassi chiamabiliClassi sealed (Dart 3)Record (Dart 3)Pattern e matching (3.0)Enum con metodi16Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e Utente2I costruttori in Dart
Costruttore predefinitoCostruttori con nomeListe di inizializzazioneCostruttori costantiCostruttori factoryCostruttori di reindirizzamentoRiepilogo - Crea forme5Incapsulamento
Membri pubblici e privatiConvenzione del prefisso _Visibilità a livello di libreriaApprofondimento su getter e setterNascondimento delle informazioniRiepilogo - Registri degli studenti8Mixin
Introduzione ai MixinCreare MixinUsare più MixinParola chiave on nei MixinMixin vs ereditarietàMixin vs interfacciaRiepilogo - Sistema animale11Metodi speciali
Sovrascrittura di toString()Sovrascrittura di hashCode e ==Interfaccia ComparableMetodo call()Sovrascrittura di noSuchMethodRiepilogo - Collezione personalizzata14Modelli di progettazione Parte 1
Introduzione ai modelli di progettazioneSingletonFactoryObserverStrategy3Proprietà delle classi
Membri di istanza e staticiCampi final e constVariabili lateMetodi e campi staticiGetter e setterRiepilogo - Gestore di conti bancari6Ereditarietà
Ereditarietà di baseLa parola chiave superOverride dei metodiL’annotazione @overrideLa parola chiave final per le classiCostruttori ed ereditarietàRiepilogo - Gerarchia dei dipendenti9Polimorfismo
Fondamenti di polimorfismoPolimorfismo tramite interfacceControllo del tipo a runtimeGli operatori is e asParola chiave covariantRiepilogo - Elaboratore di pagamenti12OOP asincrona
Future e async/awaitNozioni di base sugli streamController degli streamCostruttori asincroniAsync nei metodi di classeRiepilogo - Recupero dei dati15Pattern di progettazione Parte 2
Pattern CommandPattern AdapterPattern DecoratorPattern Template MethodPattern StatePattern CompositePattern RepositoryEsercitati da solo: Compilatore Dart online