Appunti di programmazione ad oggetti
A cura di Gerardo Cicalese
Sommario
- Ruolo di un linguaggio di programmazione ..........................................................................6
- Lo spazio del problema ..................................................................................................6
- Lo spazio della soluzione ................................................................................................6
- Il processo di astrazione .................................................................................................6
- Necessità dell’ausilio alla strutturazione ........................................................................7
- Modello object oriented ........................................................................................................9
- Concetti fondamentali della programmazione ad oggetti ..............................................9
- Oggetto ..........................................................................................................................9
- Classe .............................................................................................................................9
- FAQ: Differenza tra classe ed oggetto ..........................................................................10
- Metodo .........................................................................................................................10
- Messaggio ....................................................................................................................10
- Incapsulamento ............................................................................................................11
- Piattaforma e linguaggio Java .............................................................................................12
- Principi della piattaforma Java .....................................................................................12
- JVM ...............................................................................................................................12
- Compilazione dei codici sorgente ................................................................................12
- Gestione della memoria ...............................................................................................13
- Il passaggio di parametri avviene per valore o per riferimento? ..................................13
- Semantica dei riferimenti .............................................................................................13
- Le naming conventions di Java ....................................................................................14
- Firma di un metodo ......................................................................................................14
- Cast ..............................................................................................................................14
- Casting tra tipi primitivi .............................................................................................14
- Parola chiave this .......................................................................................................15
- Modificatore final ........................................................................................................15
- Static ..................................................................................................................................16
- Casi di utilizzo dei metodi statici ..................................................................................16
- Inizializzazione degli attributi statici ............................................................................16
- Creazione e distruzione di un oggetto ................................................................................17
- Differenza tra creazione di un oggetto e creazione di un riferimento .........................17
- Il costruttore .................................................................................................................17
- FAQ: Un costruttore senza parametro è chiamato costruttore di default? ...................17
- Identificatore di un oggetto ..........................................................................................18
- Garbage Collector ........................................................................................................18
- Metodi per operare sugli oggetti ........................................................................................19
- Classe Object ...............................................................................................................19
- Metodi getter e setter ..................................................................................................19
- Oggetti immutabili .......................................................................................................19
- Metodo equals() ...........................................................................................................20
- Metodo hashCode() ......................................................................................................20
- Metodo toString() .........................................................................................................20
- Metodo compareTo() ....................................................................................................20
- Relazione tra equals(), hashCode() e compareTo() ......................................................21
- Interfaccia Comparator ................................................................................................21
- Interfaccia Comparable ..............................................................................................21
- FAQ: Differenza tra Comparator e Comparable ..........................................................21
- Package e modificatori .......................................................................................................22
- Package ........................................................................................................................22
- Modificatori ..................................................................................................................22
- Visibilità e modificatori di accesso ...............................................................................22
- Relazione tra incapsulamento e visibilità .....................................................................23
- Polimorfismo .......................................................................................................................24
- FAQ: Come fa la JVM a decidere quale metodo eseguire in presenza di polimorfismo (per metodi)? .....................................................................................................................24
- Binding dinamico e statico ...........................................................................................25
- Invocazione virtuale dei metodi ...................................................................................25
- Overloading ed overriding ..................................................................................................26
- Overloading dei metodi ................................................................................................26
- FAQ: Come fa la JVM a distinguere i metodi overloaded? ............................................26
- Overloading degli operatori .........................................................................................26
- Override .......................................................................................................................26
- Annotazione @Override ...............................................................................................27
- FAQ: Differenza tra override ed overload .....................................................................27
- Ereditarietà .......................................................................................................................28
- Vantaggi dell’ereditarietà ...........................................................................................28
- Casting tra oggetti: upcast e downcast .....................................................................29
- Visibilità dei membri nella classe figlia ......................................................................29
- Relazione tra ereditarietà e polimorfismo ..................................................................29
- Operatore instanceof .................................................................................................29
- Parola chiave super ....................................................................................................30
- Aggregazione e composizione ..........................................................................................31
- Aggregazione .............................................................................................................31
- Composizione .............................................................................................................31
- Classi astratte ed interfacce .............................................................................................32
- Classe astratta ...........................................................................................................32
- Metodo astratto ..........................................................................................................32
- Interfaccia ..................................................................................................................32
- Ereditarietà multipla tramite le interfacce .................................................................33
- Classi innestate ................................................................................................................34
- Classi innestate e classi interne .................................................................................34
- Vantaggi delle classi innestate e casi di utilizzo ........................................................35
- Classi locali .................................................................................................................36
- Classi anonime ...........................................................................................................36
- Generics ...........................................................................................................................37
- Polimorfismo parametrico ..........................................................................................37
- Vantaggi dei generici .................................................................................................37
- Convenzioni sui tipi parametro ..................................................................................37
- Tipi generici ................................................................................................................38
- Metodi generici ..........................................................................................................38
- Deduzione automatica del tipo ..................................................................................38
- Tipi wrapper ...............................................................................................................38
- Bounded parameters .................................................................................................39
- Gestione delle condizioni anomale ...................................................................................40
- Gestione tradizionale delle condizioni anomale .........................................................40
- Gestione delle condizioni anomale in Java .................................................................40
- Operatore throw .........................................................................................................41
- Handler .......................................................................................................................42
- Try with resources ......................................................................................................43
- Eccezioni controllate e non controllate ......................................................................43
- Definizione di un’eccezione .......................................................................................44
- FAQ: Come si riconosce un’eccezione controllata? ....................................................44
- Firma di un metodo che lancia eccezioni ...................................................................44
- Collections ........................................................................................................................46
- Schema gerarchico delle Collections .........................................................................46
- Iterare sulle collezioni ................................................................................................47
- Iteratore .....................................................................................................................47
- Polimorfismo nelle collezioni ......................................................................................48
- FAQ: Differenza tra Map e Set ....................................................................................48
- Implementazioni di Map .............................................................................................49
- Parola chiave Iterable .................................................................................................49
- I/O e Streams ....................................................................................................................50
- Chiusura degli stream ................................................................................................50
- Classi ed interfacce principali di java.io .....................................................................50
- Classi per la gestione dell’I/O non appartenenti a java.io ..........................................51
- FAQ: Differenza tra FileReader, FileWriter, FileInputStream, FileOutputStream e File 51
- Bufferizzazione ...........................................................................................................51
- Serializzazione ...........................................................................................................52
- Programmazione multi-threaded ......................................................................................53
- Thread ........................................................................................................................53
- Differenza tra thread e processo ................................................................................54
- Differenza tra programmazione concorrente e parallela ...........................................54
- Creazione di un thread in Java, differenza tra Runnable e Thread .............................55
- Sincronizzazione tra thread ........................................................................................56
- Mutex .........................................................................................................................57
- Deadlock ....................................................................................................................57
- Synchronized ..............................................................................................................58
- Stati di un thread .......................................................................................................58
- Attesa attiva .............................................................................................................58
- Attesa passiva mediante i metodi wait(), notify() e notifyAll() ................................59
- Metodi per gestire l’attesa .......................................................................................60
- Metodo wait() ...........................................................................................................60
- Metodo sleep() .........................................................................................................61
- Metodo join() ............................................................................................................61
- Interfacce grafiche con JavaFX .........................................................................................62
- Anatomia di un’applicazione JavaFX ..........................................................................62
- Layout ........................................................................................................................62
- FXML ...........................................................................................................................63
- Scene Builder .............................................................................................................63
- Gestione degli eventi .................................................................................................63
- Properties ...................................................................................................................64
- Binding .......................................................................................................................65
- Osservabilità ..............................................................................................................65
- FXCollections ..............................................................................................................65
- Pattern MVC .............................................................................................................65
- FAQ: JavaFX è una realizzazione del pattern MVC? ..................................................66
- Controller .................................................................................................................66
- FileChooser ...............................................................................................................66
- Concorrenza in JavaFX .............................................................................................66
- La classe Task ...........................................................................................................67
- La classe Service ......................................................................................................67
Ruolo di un linguaggio di programmazione
Un linguaggio di programmazione permette di stabilire una corrispondenza tra lo spazio del problema e lo spazio della soluzione, tramite il processo di astrazione.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Programmazione a Oggetti [Java], Base e Avanzata - Ing. Informatica, Appunti di Programmazione Java
-
Appunti di Programmazione ad oggetti - Java
-
Appunti di Programmazione orientata agli oggetti e Java
-
Programmazione ad oggetti e Java (1)