LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 1
|
|
- Graziana Cosentino
- 6 anni fa
- Visualizzazioni
Transcript
1 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI (Caso di studio facoltativo) Pensare a oggetti: animazioni e suoni nella vista Questo caso di studio si è focalizzato principalmente sul modello MVC della nostra simulazione di ascensore. Ora che abbiamo completato la progettazione del modello, ci occupiamo della vista, che fornisce la presentazione visiva del modello. Nel nostro caso di studio, la vista, incapsulata nella classe ElevatorView, è un oggetto JPanel contenente altri oggetti JPanel figli, ognuno rappresentante un oggetto unico del modello MVC (per esempio, un oggetto Person, un oggetto Button, ecc.). La classe ElevatorView è la classe più grande nel caso di studio. In questa sezione, discutiamo le classi per la grafica e il suono usate da ElevatorView. Presenteremo e spiegheremo il resto del codice sul sito Web /allegati/. Nella sezione 3.7 del volume Tecniche di base, abbiamo costruito il diagramma di classe del nostro modello individuando sostantivi e frasi dalla specifica del problema. Abbiamo ignorato parecchi di questi sostantivi, perché non erano associati con il modello MVC. Ora, elenchiamo i sostantivi e le frasi che sono relativi alla visualizzazione del modello MVC: visualizzazione audio musica dell ascensore. Il sostantivo visualizzazione corrisponde alla vista, o alla presentazione visuale, del modello MVC. Come descritto nella sezione 2.7, la classe ElevatorView aggrega diverse classi. Il sostantivo audio si riferisce agli effetti sonori che la nostra simulazione genera quando accadono varie azioni; creeremo la classe SoundEffects per generare tali effetti sonori. La frase musica dell ascensore si riferisce alla musica che viene riprodotta quando una persona viaggia sull ascensore; useremo la classe SoundEffects anche per riprodurre questa musica. La vista visualizza gli oggetti del modello MVC. Creeremo la classe ImagePanel per rappresentare gli oggetti stazionari del modello, come ElevatorShaft. Creeremo la classe MovingPanel, che estende ImagePanel, per rappresentare gli oggetti in movimento, come Elevator. Infine, creeremo la classe AnimatedPanel, che estende MovingPanel, per rappresentare gli oggetti in movimento la cui immagine corrispondente cambia continuamente, come Person (useremo diverse immagini per mostrare la persona che cammina e preme un pulsante). Usando queste classi, presentiamo il diagramma di classe della vista per la nostra simulazione nella figura 8.5. Le note indicano i ruoli che hanno le classi nel sistema. Secondo il diagramma di classe, la classe ElevatorView rappresenta la vista, le classi ImagePanel, MovingPanel e AnimatedPanel si riferiscono alla grafica e la classe SoundEffects si riferisce ai suoni. La classe ElevatorView contiene diverse istanze delle classi ImagePanel, MovingPanel e AnimatedPanel e un istanza della classe SoundEffects. Nella versione finale del caso di studio, assoceremo ogni oggetto del modello con una classe corrispondente nella vista. In questa sezione, discutiamo le classi ImagePanel, MovingPanel e AnimatedPanel per spiegare la grafica e le animazioni. Poi, discuteremo la classe SoundEffects per spiegare le funzionalità audio.
2 2 CAPITOLO 8 ImagePanel 1..* javax.swing.jpanel 1 MovingPanel 1..* 1 1 ElevatorView 1 Audio AnimatedPanel 1..* 1 SoundEffects Grafica Vista Figura 8.5 Diagramma di classe della vista del simulatore di ascensore ImagePanel La classe ElevatorView usa oggetti di sottoclassi di JPanel per rappresentare e visualizzare ogni oggetto nel modello (come Elevator, Person, ecc.). La classe ImagePanel (figura 8.6) è una sottoclasse di JPanel in grado di visualizzare un immagine in una data posizione dello schermo. La classe ElevatorView usa oggetti ImagePanel per rappresentare oggetti immobili nel modello, come ElevatorShaft e i due Floor. La classe ImagePanel contiene un attributo intero, ID (riga 16), che dichiara un identificatore unico per tenere traccia dell ImagePanel nella vista. Ciò è utile quando diversi oggetti della stessa classe sono presenti nel modello, come diversi oggetti Person. La classe ImagePanel contiene l oggetto position della classe Point2D.Double (riga 19) per rappresentare la sua posizione sullo schermo. Vedremo più avanti che MovingPanel, che estende ImagePanel, dichiara la velocità con valori double. Convertiremo le coordinate position in valori int per posizionare l oggetto ImagePanel sullo schermo (Java rappresenta le coordinate dello schermo come interi) nel metodo setposition (righe 90-94). La classe ImagePanel contiene anche un oggetto ImageIcon chiamato imageicon (riga 22), il cui metodo paintcomponent (righe 54-60) visualizza l icona sullo schermo. Le righe inizializzano ImageIcon usando un parametro stringa che contiene il nome dell immagine. Infine, la classe ImagePanel contiene l oggetto panelchildren della classe Set (riga 25) che memorizza tutti gli oggetti JPanel figli (o oggetti di una sottoclasse di JPanel). Gli oggetti figli vengono visualizzati sopra il loro ImagePanel genitore: per esempio, un oggetto Person dentro un Elevator. Il primo metodo add (righe 63-67) aggiunge un oggetto a panelchildren. Il secondo metodo add (righe 70-74) inserisce un oggetto in panelchildren all indice specificato. Il metodo seticon (righe 84-87) imposta imageicon con una nuova immagine. Gli oggetti della classe AnimatedPanel usano ripetutamente il metodo seticon per cambiare l immagine visualizzata, in modo da eseguire l animazione.
3 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 3 1 // ImagePanel.java 2 // sottoclasse di JPanel per posizionare e visualizzare ImageIcon 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base Java 6 import java.awt.*; 7 import java.awt.geom.*; 8 import java.util.*; 9 10 // package Java di estensione 11 import javax.swing.*; public class ImagePanel extends JPanel { // identificatore 16 private int ID; // posizione sullo schermo 19 private Point2D.Double position; // imageicon da disegnare sullo schermo 22 private ImageIcon imageicon; // memorizza tutti i figli di ImagePanel 25 private Set panelchildren; // costruttore che inizializza posizione e immagine 28 public ImagePanel( int identifier, String imagename ) 29 { 30 super( null ); // specifica layout null 31 setopaque( false ); // rende trasparente // imposta identificatore unico 34 ID = identifier; // imposta posizione 37 position = new Point2D.Double( 0, 0 ); 38 setlocation( 0, 0 ); // crea ImageIcon con imagename dato 41 imageicon = new ImageIcon( 42 getclass().getresource( imagename ) ); Image image = imageicon.getimage(); 45 setsize( 46 image.getwidth( this ), image.getheight( this ) ); // crea Set per memorizzare i figli di Panel Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello (continua)
4 4 CAPITOLO 8 49 panelchildren = new HashSet(); } // fine costruttore di ImagePanel // disegna Panel sullo schermo 54 public void paintcomponent( Graphics g ) 55 { 56 super.paintcomponent( g ); // se l immagine è pronta, disegnala sullo schermo 59 imageicon.painticon( this, g, 0, 0 ); 60 } // aggiunge figlio di ImagePanel a ImagePanel 63 public void add( ImagePanel panel ) 64 { 65 panelchildren.add( panel ); 66 super.add( panel ); 67 } // aggiunge figlio di ImagePanel a ImagePanel all indice dato 70 public void add( ImagePanel panel, int index ) 71 { 72 panelchildren.add( panel ); 73 super.add( panel, index ); 74 } // rimuove figlio di ImagePanel da ImagePanel 77 public void remove( ImagePanel panel ) 78 { 79 panelchildren.remove( panel ); 80 super.remove( panel ); 81 } // imposta ImageIcon corrente da visualizzare 84 public void seticon( ImageIcon icon ) 85 { 86 imageicon = icon; 87 } // imposta posizione sullo schermo 90 public void setposition( double x, double y ) 91 { 92 position.setlocation( x, y ); 93 setlocation( ( int ) x, ( int ) y ); 94 } // ritorna identificatore di ImagePanel Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello (continua)
5 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 5 97 public int getid() 98 { 99 return ID; 100 } // ottiene posizione di ImagePanel 103 public Point2D.Double getposition() 104 { 105 return position; 106 } // ottiene imageicon 109 public ImageIcon getimageicon() 110 { 111 return imageicon; 112 } // ottiene Set di figli di ImagePanel 115 public Set getchildren() 116 { 117 return panelchildren; 118 } 119 } Figura 8.6 La classe ImagePanel rappresenta e visualizza un oggetto immobile del modello MovingPanel La classe MovingPanel (figura 8.7) è una sottoclasse di ImagePanel in grado di cambiare la sua posizione sullo schermo in base ai valori xvelocity e yvelocity (righe 20-21). La classe ElevatorView usa oggetti MovingPanel per rappresentare oggetti mobili del modello, come Elevator. 1 // MovingPanel.java 2 // Sottoclasse di JPanel con funzionalità di movimento sullo schermo 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base 6 import java.awt.*; 7 import java.awt.geom.*; 8 import java.util.*; 9 10 // package Java di estensione 11 import javax.swing.*; public class MovingPanel extends ImagePanel { 14 Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello (continua)
6 6 CAPITOLO 8 15 // MovingPanel dovrebbe cambiare posizione? 16 private boolean moving; // numero di pixel di cui MovingPanel si muove nelle direzioni x e y 19 // per animationdelay millisecondi 20 private double xvelocity; 21 private double yvelocity; // costruttore che inizializza posizione, velocità e immagine 24 public MovingPanel( int identifier, String imagename ) 25 { 26 super( identifier, imagename ); // imposta velocità di MovingPanel 29 xvelocity = 0; 30 yvelocity = 0; } // fine costruttore di MovingPanel // aggiorna posizione e animazione di MovingPanel 35 public void animate() 36 { 37 // aggiorna posizione a seconda della velocità 38 if ( ismoving() ) { 39 double oldxposition = getposition().getx(); 40 double oldyposition = getposition().gety(); setposition( oldxposition + xvelocity, 43 oldyposition + yvelocity ); 44 } // aggiorna tutti i figli di MovingPanel 47 Iterator iterator = getchildren().iterator(); while ( iterator.hasnext() ) { 50 MovingPanel panel = ( MovingPanel ) iterator.next(); 51 panel.animate(); 52 } 53 } // fine metodo animate // MovingPanel si sta muovendo sullo schermo? 56 public boolean ismoving() 57 { 58 return moving; 59 } // imposta MovingPanel per muoversi sullo schermo 62 public void setmoving( boolean move ) Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello (continua)
7 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 7 63 { 64 moving = move; 65 } // imposta le velocità x e y di MovingPanel 68 public void setvelocity( double x, double y ) 69 { 70 xvelocity = x; 71 yvelocity = y; 72 } // ritorna velocità x di MovingPanel 75 public double getxvelocity() 76 { 77 return xvelocity; 78 } // ritorna velocità y di MovingPanel 81 public double getyvelocity() 82 { 83 return yvelocity; 84 } 85 } Figura 8.7 La classe MovingPanel rappresenta e visualizza un oggetto che si muove dal modello Il metodo animate (righe 35-53) muove MovingPanel secondo i valori attuali dei campi xvelocity e yvelocity. Se la variabile boolean moving (riga 16) è true, le righe usano i campi xvelocity e yvelocity per determinare la prossima posizione di movingpanel. Le righe ripetono il procedimento per tutti i figli. Nella nostra simulazione, ElevatorView invoca il metodo animate e il metodo paintcomponent della classe ImagePanel ogni 50 millisecondi. Queste chiamate in rapida successione spostano l oggetto MovingPanel. AnimatedPanel La classe AnimatedPanel (figura 8.8), che estende la classe MovingPanel, rappresenta un oggetto animato del modello (cioè, oggetti in movimento la cui immagine corrispondente cambia continuamente), come Person. La classe ElevatorView anima un AnimatedPanel cambiando l immagine associata con imageicon. 1 // AnimatedPanel.java 2 // Sottoclasse di Panel con funzionalità di animazione 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base 6 import java.awt.*; 7 import java.util.*; Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)
8 8 CAPITOLO // package Java di estensione 10 import javax.swing.*; public class AnimatedPanel extends MovingPanel { // ImageIcon deve essere animato? 15 private boolean animating; // frequenza di cambio immagine 18 private int animationrate; 19 private int animationratecounter; 20 private boolean cycleforward = true; // ImageIcon individuali usati per l animazione 23 private ImageIcon imageicons[]; // memorizza tutte le sequenze di frame 26 private java.util.list framesequences; 27 private int currentanimation; // deve continuare l animazione alla fine del ciclo? 30 private boolean loop; // deve visualizzare l ultima immagine alla fine dell animazione? 33 private boolean displaylastframe; // determina la prossima immagine da visualizzare 36 private int currentframecounter; // costruttore che prende un array di nomi di file 39 public AnimatedPanel( int identifier, String imagename[] ) 40 { 41 super( identifier, imagename[0] ); // crea oggetti ImageIcon dall array di stringhe imagename 44 imageicons = new ImageIcon[ imagename.length ]; for ( int i = 0; i < imageicons.length; i++ ) { 47 imageicons[i] = new ImageIcon( 48 getclass().getresource( imagename[i] ) ); 49 } framesequences = new ArrayList(); } // fine costruttore di AnimatedPanel // aggiorna posizione dell icona e immagine dell animazione 56 public void animate() Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)
9 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 9 57 { 58 super.animate(); // visualizza la prossima immagine se counter > frequenza di animazione 61 if ( framesequences!= null && isanimating() ) { if ( animationratecounter > animationrate ) { 64 animationratecounter = 0; 65 determinenextframe(); 66 } 67 else 68 animationratecounter++; 69 } 70 } // fine metodo animate // determina prossima immagine dell animazione 73 private void determinenextframe() 74 { 75 int framesequence[] = 76 ( int[] ) framesequences.get( currentanimation ); // se non ci sono più immagini, determina immagine finale 79 // a meno che non si debba ripetere l animazione 80 if ( currentframecounter >= framesequence.length ) { 81 currentframecounter = 0; // se loop è false, termina animazione 84 if (!isloop() ) { setanimating( false ); if ( isdisplaylastframe() ) // visualizza ultima immagine della sequenza 91 currentframecounter = framesequence.length - 1; 92 } 93 } // imposta immagine corrente dell animazione 96 setcurrentframe( framesequence[ currentframecounter ] ); 97 currentframecounter++; } // fine metodo determinenextframe // aggiunge animazione all ArrayList framesequences 102 public void addframesequence( int framesequence[] ) 103 { 104 framesequences.add( framesequence ); Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)
10 10 CAPITOLO } // chiede se AnimatedPanel sta eseguendo l animazione 108 public boolean isanimating() 109 { 110 return animating; 111 } // imposta AnimatedPanel per eseguire l animazione 114 public void setanimating( boolean animate ) 115 { 116 animating = animate; 117 } // imposta ImageIcon corrente 120 public void setcurrentframe( int frame ) 121 { 122 seticon( imageicons[ frame ] ); 123 } // imposta frequenza di animazione 126 public void setanimationrate( int rate ) 127 { 128 animationrate = rate; 129 } // ottiene frequenza di animazione 132 public int getanimationrate() 133 { 134 return animationrate; 135 } // imposta se l animazione deve ripetersi 138 public void setloop( boolean loopanimation ) 139 { 140 loop = loopanimation; 141 } // ottiene se l animazione deve ripetersi 144 public boolean isloop() 145 { 146 return loop; 147 } // ottiene se visualizzare l ultima immagine alla fine dell animazione 150 private boolean isdisplaylastframe() Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello (continua)
11 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI { 152 return displaylastframe; 153 } // imposta se visualizzare l ultima immagine alla fine dell animazione 156 public void setdisplaylastframe( boolean displayframe ) 157 { 158 displaylastframe = displayframe; 159 } // inizia ad eseguire la sequenza di animazione all indice dato 162 public void playanimation( int framesequence ) 163 { 164 currentanimation = framesequence; 165 currentframecounter = 0; 166 setanimating( true ); 167 } 168 } Figura 8.8 La classe AnimatedPanel rappresenta e visualizza un oggetto animato dal modello La classe AnimatedPanel sceglie un oggetto ImageIcon da disegnare sullo schermo tra diversi oggetti ImageIcon memorizzati nell array imageicons (riga 23). La classe AnimatedPanel determina l oggetto ImageIcon secondo una sequenza di riferimenti, memorizzata nella lista framesequences (riga 26), che è un array di interi che memorizza la sequenza appropriata per visualizzare gli oggetti ImageIcon: in particolare, ogni intero rappresenta l indice di un oggetto ImageIcon nell array imageicons. La figura 8.9 mostra la relazione tra imageicons e framesequences (questo non è un diagramma UML). Per esempio, la sequenza numero 2 = { 2, 1, 0 } si riferisce a { imageicon[2], imageicon[1], imageicon[0] }, che porta alla sequenza di immagini { C, B, A }. Nella vista, ogni immagine è un file.png unico. Il metodo addframesequences (righe ) aggiunge una sequenza di animazione alla lista framesequences. Il metodo playanimation (righe ) fa partire l animazione asso- framesequences image sequences imageicons 0= A B C 1= A B C D A B D B A = C B A 3= D C C A Figura 8.9 Relazione tra l array imageicons e la lista FrameSequences
12 12 CAPITOLO 8 ciata con il parametro framesequences. Per esempio, supponiamo di avere un oggetto AnimatedPanel chiamato personanimatedpanel nella classe ElevatorView. Il frammento di codice animatedpanel.playanimation( 1 ); genererebbe la sequenza di immagini { A, B, D, B, A } se usiamo la figura 8.9 come riferimento. Il metodo animate (righe 56-70) sovrascrive il metodo animate della superclasse MovingPanel. Le righe determinano la successiva immagine per l animazione a seconda del campo animationrate, che è inversamente proporzionale alla velocità dell animazione: un valore più alto per animationrate comporta un animazione più lenta. Per esempio, se animationrate vale 5, animate si sposta alla successiva immagine dell animazione ogni cinque volte viene invocato. Usando questa logica, la frequenza di animazione viene massimizzata quando animationrate ha un valore 1, perché la successiva immagine viene determinata ogni volta che viene chiamato animate. Il metodo animate chiama determinenextframe (righe 73-99) per determinare la successiva immagine da visualizzare: in particolare, viene chiamato il metodo setcurrentframe (righe ) che imposta imageicon (l immagine correntemente visualizzata) all immagine ritornata dalla corrente sequenza di animazione. Le righe di determinenextframe vengono usate per ripetere l animazione. Se loop vale false, l animazione termina dopo una iterazione. L ultima immagine della sequenza viene visualizzata se displaylastframe vale true, e, se vale false, viene visualizzata la prima immagine della sequenza. Se loop vale true, l animazione si ripete finché non viene fermata esplicitamente. Effetti sonori Vediamo ora come generare dei suoni nella nostra simulazione. La classe SoundEffects (figura 8.10) trasforma file audio (.au), wave (.wav) e MIDI (.mid) contenenti suoni come il campanello, i passi della persona e la musica dell ascensore, in oggetti java.applet.audioclip. L oggetto ElevatorView riprodurrà gli oggetti AudioClip per generare i suoni. Tutti i file dei suoni sono nella struttura di directory com/deitel/jhtp5/elevator/view/sounds Nella nostra simulazione, useremo suoni e file MIDI disponibili gratuitamente al sito Web di Microsoft: msdn.microsoft.com/downloads/default.asp Per scaricare questi suoni, fate clic su Graphics and Multimedia, Multimedia (General), e poi Sounds. La classe SoundEffects contiene i metodi getaudioclip (righe 16-27), che usa il metodo statico newaudioclip (della classe java.applet.applet) per ritornare un oggetto AudioClip usando il parametro soundfile. Il metodo setpathprefix (righe 30-33) permette di cambiare directory del file audio (utile se vogliamo dividere i nostri file sonori tra directory diverse).
13 LA MULTIMEDIALITÀ: LE IMMAGINI, LE ANIMAZIONI E I SUONI 13 1 // SoundEffects.java 2 // Ritorna oggetti AudioClip 3 package com.deitel.jhtp5.elevator.view; 4 5 // package Java di base 6 import java.applet.*; 7 8 public class SoundEffects { 9 10 // posizione dei file audio 11 private String prefix = ; public SoundEffects() {} // ottiene AudioClip associato con soundfile 16 public AudioClip getaudioclip( String soundfile ) 17 { 18 try { 19 return Applet.newAudioClip( getclass().getresource( 20 prefix + soundfile ) ); 21 } // ritorna null se il file audio non esiste 24 catch ( NullPointerException nullpointerexception ) { 25 return null; 26 } 27 } // imposta prefisso per la posizione di soundfile 30 public void setpathprefix( String string ) 31 { 32 prefix = string; 33 } 34 } Figura 8.10 La classe SoundEffects ritorna oggetti AudioClip Conclusione Avete appena completato un procedimento di progettazione orientata agli oggetti che aveva lo scopo di prepararvi per le sfide dei progetti di livello industriale. Speriamo che abbiate trovato le sezioni Pensare a oggetti informative e utili come complemento al materiale presentato nei vari capitoli. Inoltre, speriamo vi siate divertiti a progettare il sistema usando UML. Il linguaggio UML è stato adottato come standard dall industria del software mondiale per la modellazione di software orientato agli oggetti. Anche se avete completato la fase di progettazione, avete solo sfiorato il processo di implementazione. Consultate il sito Web per la completa implementazione del progetto, e le traduzioni dei diagrammi UML in un programma Java completo per la simulazione dell ascensore. Studiare l implementazione rafforzerà le abilità nella programmazione che avete sviluppato leggendo il libro e migliorerà la vostra comprensione del processo di progettazione.
La multimedialità: le immagini, le animazioni e i suoni
CAPITOLO 8 La multimedialità: le immagini, le animazioni e i suoni Obiettivi Imparare a visualizzare le immagini Creare animazioni da sequenze di immagini Creare mappe di immagini Imparare a riprodurre,
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliFloorButton - pressed : Boolean = false + resetbutton( ) : void + pressbutton( ) : void
0. (Caso di studio facoltativo) Pensare a oggetti: incorporare l ereditarietà nel simulatore di ascensore Rivisitiamo ora il nostro progetto di simulatore di ascensore per vedere come può beneficiare dell
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliCOMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i
DettagliArray. Walter Didimo
Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 4 Disegni Animazioni Immagini Suoni 1 Prerequisiti Funzioni grafiche in Java Utilizzo package awt 2 1 Introduzione In questa Unità utilizziamo Java per creare
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliL applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1
I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
DettagliProgrammazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007
Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento
DettagliScope e visibilità per classi
Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Classi interne
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliThread, classi attive e sequenze di modellazione IL MULTITHREADING 1
IL MULTITHREADING 5. (Caso di studio facoltativo) Pensare a oggetti: il multithreading Gli oggetti del mondo reale svolgono le loro funzioni indipendentemente uno dall altro e in modo concorrente. Come
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliSoluzione della prova scritta del 5 febbraio 2013
Corso di Programmazione Anno Accademico 2012 2013 Prof. Giovanni Pighizzini della prova scritta del 5 febbraio 2013 Questo documento discute un esempio di soluzione di alcuni esercizi assegnati. Naturalmente
DettagliEsercizio: Lista Circolare
Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliGerarchia di classi Java 1
Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliProgrammazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Design Pattern Dott. Alessandro Roncato 18/10/2011 Design Patters I Design Patters sono soluzioni di progettazione standard e ben collaudate che possono essere usate in
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Dettaglipublic double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo.
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 7 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40
DettagliOggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.
Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli
DettagliGrafica in Java. introduzione
Grafica in Java introduzione Awt vs swing Contenitori Top level Swing: indipendenza dalla piattaforma muro grezzo da rivestire ad esempio con pannelli Frame Un frame (lett.: 'cornice') è, a livello visivo,
DettagliJava e i Tipi di dati primitivi. Parte 3
Java e i Tipi di dati primitivi Parte 3 La nozione di tipo di dato Il tipo del dato consente di esprimere la natura del dato Indica il modo con cui verrà interpretata la sequenza di bit che rappresenta
DettagliEsempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un
Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un giocatore, ogni giocatore una scheda Ci vengono già fornite le classi necessarie
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliSET: specifica INTRODUZIONE. SET: esempio Si stampano i numeri casuali in ordine di generazione e il contenuto dell insieme.
INTRODUZIONE Il tipo di dati astratto insieme (set) definisce operazioni, quali inserimento e rimozione, su collezioni di oggetti che presentano molteplicità uno, cioè non sono ammessi duplicati. Una possibile
DettagliRequisiti. Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito d esame
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliGerarchia di classi Java 1
Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale
DettagliAlberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione
Alberi Strutture dati: Alberi Strutture gerarchiche di dati Esempi Il file system di un sistema operativo L organigramma di un azienda Alberi generali, alberi n-ari, alberi binari, Ogni nodo ha un unico
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
DettagliTecniche iterative. Walter Didimo
Tecniche iterative Walter Didimo Tecniche iterative In questa lezione svolgeremo alcuni esercizi di definizione di classi con metodi che usano istruzioni condizionali istruzioni iterative Gli esercizi
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliProgettazione del Software
Progettazione del Software simulazione di esame III Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Requisiti L'applicazione da progettare riguarda la
DettagliAlberi Binario in Java
Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un
DettagliProva d Esame Compito A
Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;
DettagliFondamenti di Informatica T1 Interfaccia Comparable Collezioni
Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 19 Interfaccia Comparable Fa
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia
DettagliInsegnamento di Laboratorio di algoritmi e strutture dati
Insegnamento di Laboratorio di algoritmi e strutture dati Roberto Posenato ver. 0.6, 31/01/2008 1 / 25 Si comincia... 1 Esigenza... Definizione Tipi di eccezioni Sollevare eccezioni Gestire le eccezioni
DettagliDiagramma delle classi UML
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2002-03 SOLUZIONE ESAME DEL 11/07/2003 Roma, 11 luglio 2003 1
DettagliGrafico della parabola
Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un
DettagliProgrammazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008
Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2008 Negli esercizi fate riferimento alle
DettagliNote ed esercizi aggiuntivi
Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 C2.1 Animazioni 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Utilizzo di elementi grafici ed eventi Utilizzo classe Canvas 2 1 Introduzione
Dettagli{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}
16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento
DettagliPreparazione allo scritto di Programmazione Comunicazione Digitale / Informatica - A.A. 2012/2013
Preparazione allo scritto di Programmazione Comunicazione Digitale / Informatica - A.A. 2012/2013 Matricola:...................... Cognome:...................... Nome:...................... Informatica
DettagliAlgoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati
Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il
DettagliFondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti
Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 8 Introduzione al calcolatore e Java Linguaggio Java, basi e
DettagliArray di array. Walter Didimo
Array di array Walter Didimo Array di array Abbiamo visto che il tipo di dato degli elementi di un array può essere qualsiasi tipo valido Il tipo di dato degli elementi di un array può dunque anche essere
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA7 B1 Gestione di liste 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Gestione di liste Classificazione delle
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliLaboratorio di Sistemi Classi e relazioni Java
package carrelloconsoleapp; import javax.swing.imageicon; /* *.java /** * * @author maurizio public class { private String id; private String descrizione; private double prezzo; private int percsconto;
DettagliCorso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4
Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario
DettagliAstrazioni sui dati : Specifica di Tipi di Dato Astratti in Java
Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java 1 Specifica ed Implementazione di Tipi di Dato Astratti in Java cos è un tipo di dato astratto specifica di tipi di dati astratti un tipo
DettagliProva d Esame Compito A
Prova d Esame 19.07.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;
DettagliSul pattern Iterator
Sul pattern Iterator 1 Introduzione Capita spesso di aver a che fare con strutture dati complesse, come ad esempio, liste, code, ecc. È buona norma accedere a queste strutture senza esporre la loro organizzazione.
DettagliProva d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
DettagliParte I Java. Metodologie di Programmaziona Secondo Appello, 14/2/2006 1
Metodologie di Programmaziona 05 06 Secondo Appello, 14/2/2006 1 Parte I Java Considerate le seguenti definizioni di classe. class T { class S extends T { class A { public void print(string s) { System.out.println(s);
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
DettagliDiagramma delle classi UML
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME DEL 11/07/2003 Roma, 9
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliCOGNOME.NOME. Matricola
Esame di PROGRAMMAZIONE ORIENTATA AGLI OGGETTI Appello del 4.9.2013 COGNOME.NOME. Matricola Tre classi, denominate Anemone, Fiordaliso e Viola devono assicurare la visualizzazione di un fiore stilizzato
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
DettagliIntroduzione a Java e all'ambiente di sviluppo
Introduzione a Java e all'ambiente di sviluppo Programmazione 2, a.a. 2006-2007 Nota: per esclusivo uso interno al corso, riferimenti bibliografici forniti a lezione Schema minimo di un applicazione public
DettagliMicrosoft Visio 2002 UML Sergio Colosio
Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra
DettagliListe doppie. Doubly Linked Lists. GT: 6.2 (e 3.3) Argomenti della lezione
Liste doppie GT: 6.2 (e 3.3) Doubly Linked Lists 1 Argomenti della lezione ADT Position NodeList interface Position PositionList class DNode NodePositionList inserzione rimozione Iteratore ADT Iterator
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Pseudocodifica m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso
DettagliCapitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliFondamenti di Informatica
Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliCorso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione
Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array
Dettaglisemplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
Liste doppie Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica semplice: doppia: Gli
DettagliProgrammazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi
DettagliProgrammazione in Java (I modulo) Lezione 20: Ereditarietà
Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi
Dettagli