Introduzione alla programmazione orientata agli oggetti
Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 3 di 110.
La programmazione orientata agli oggetti (OOP) organizza il codice attorno a oggetti che contengono dati (variabili di istanza) e funzioni (metodi).
Crea un file chiamato car.dart con una classe
class Car {
// corpo della classe vuoto
}Crea un altro file chiamato driver.dart per usare la classe
import 'car.dart';Crea un oggetto dalla classe Car usando il nome della classe seguito dalle parentesi
void main() {
Car myCar = Car();
}Controlla il tipo del tuo oggetto usando runtimeType
print(myCar.runtimeType);Output:
CarQuesto conferma che hai creato correttamente un oggetto dalla tua classe Car. Nella programmazione orientata agli oggetti, una classe è come un progetto e un oggetto è ciò che costruisci a partire da quel progetto. In Dart, crei oggetti chiamando il nome della classe come una funzione: Car().
Sfida
MedioIn questa sfida, userai una classe Car definita in car.dart e ne creerai un oggetto in driver.dart.
Aggiorna driver.dart per:
- Creare un oggetto dalla classe
CarusandoCar()e memorizzarlo in una variabile chiamatamyCar
Il file driver stamperà il tipo a runtime per verificare la tua implementazione.
Provalo tu
import 'car.dart';
void main() {
// TODO: Crea un oggetto Car chiamato myCar
Car myCar = ?;
print(myCar.runtimeType);
}
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