Programmazione Orientata agli Oggetti in Linguaggio Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Orientata agli Oggetti in Linguaggio Java"

Transcript

1 Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Conclusioni versione 1.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Ruoli e Responsabilità: Conclusioni >> Sommario Sommario Riepilogo Diagrammi UML API di Java Le Collezioni Tipi Generici java.util.random String e StringBuffer Enumerazioni 2

2 Ruoli e Responsabilità: Conclusioni >> Riassumendo Riassumendo Interfaccia tutto quello che un componente sa fare definisce i compiti del componente Implementazione tutti i dettagli di come lo fa (gli strumenti e le tecniche per svolgere i suoi compiti) Analogo massaia ed idraulico 3 Ruoli e Responsabilità: Conclusioni >> Riassumendo Riassumendo Obiettivo costruire società di componenti organizzati i componenti si dividono i compiti e collaborano secondo regole precise Ruolo e Strato applicativo il ruolo rappresenta il mestiere del componente lo strato applicativo rappresenta il luogo di lavoro del componente 4

3 Ruoli e Responsabilità: Conclusioni >> Riassumendo Riassumendo Analogo la lavanderia Interfaccia e controllo compito di relazione con il pubblico Modello e persistenza compito di fare funzionare la bottega Servizi di base infrastruttura e strumenti di lavoro 5 Diagrammi UML In questo argomento la media pesata indovina il numero la morra cinese Diagrammi di documentazione riconsideriamo i diagrammi UML degli esempi cominciamo dai diagrammi delle classi e poi vediamo alcuni diagrammi di collaborazione 6

4 Esempio: Media Pesata it.unibas.mediapesata viene descritta solo l interfaccia Principale +static voidmain() +void esegui() depends depends Studente + String getnome() + String getcognome() + int getmatricola() + void addesame(esame) + Esame getesame(int i) + int getnumeroesami() + double getmediapesata() + String tostring() * Esame + int getvoto() - void setvoto(int) + boolean getlode() - void setlode(boolean) + int getcrediti() - void setcrediti(int) it.unibas.utilita Console associazione unidirezionale tra Studente ed esami; l associazione è di tipo 1 a molti; al solito viene trascurato l oggetto di tipo ArrayList intermedio 7 Diagrammi UML Nota l associazione tra Studente ed Esame è unidirezionale (lo studente mantiene la lista di riferimenti agli esami, ma non il viceversa) Ma, anche in questo caso l associazione avrebbe potuto essere bidirezionale es: in Studente una lista di Esami, in Esame un riferimento allo studente 8

5 Diagrammi UML public class Studente { private String nome, cognome; private int matricola; private java.util.arraylist esami = new java.util.arraylist();... } public class Esame { private String insegnamento; private int vodo, crediti; private boolean lode; private Studente studente;... } 9 Media Pesata: Diagramma delle Classi it.unibas.mediapesata Principale Esame +static voidmain() +void esegui() depends depends Studente + String getnome() + String getcognome() + int getmatricola() + void addesame(esame) + Esame getesame(int i) + int getnumeroesami() + double getmediapesata() + String tostring() 1 * + int getvoto() - void setvoto(int) + boolean getlode() - void setlode(boolean) + int getcrediti() - void setcrediti(int) + void setstudente(studente s) + Studente getstudente() it.unibas.utilita Console associazione bidirezionale tra Studente ed esami; vengono specificate entrambe le cardinalità 10

6 Diagrammi UML Indovina il numero di seguito vediamo prima un possibile diagramma concettuale poi il diagramma delle classi finale dell appl. e alcuni diagrammi di collaborazione Al solito le classi del modello dell applicazione discendono dal diagramma concettuale non tutti i concetti sono diventati classi 11 Indovina il Numero Giocatore nome 1 effettua > 1 * gioca > * Partita numerodaindovinare numeroditentativi 1 * Tentativo valore risultato 1 relativo a > produce > 0..1 Record valore cardinalità minima e massima (una partita può non produrre nessun record; al massimo ne produce uno) l associazione effettua è ridondante; infatti è possibile risalire al giocatore che ha effettuato il tentativo navigando dal tentativo alla partita e di lì al giocatore (ciclo nel grafo); lo stesso vale per la relazione tra Giocatore e Record nei ruoli viene utilizzato il verso per suggerire in che modo leggere l associazione 12

7 Indovina il Numero it.unibas.indovina Principale - Record record + static main(string[]) + void schermoiniziogioco() - void schermotentativo() - void schermofinegioco() - void schermointerruzione() - void schermouscita() Partita - String nome - int numero - int numerotentativi - boolean trovato - String suggerimento - static java.util.random generatore + void setnome() + void gestiscitentativo() + void reset() + boolean gettrovato() + String getnome() + int getnumtent() + int getnumero() + String getsuggerim() Record - String nomefile - boolean nuovorecord - boolean uguagliato + void checkrecord() + boolean isuguagliato() + boolean isnuovorecord() + int getvalorerecord() + void reset() - void setvalorerecord() it.unibas.utilita java.io 13 Indovina il Numero: Collaborazione Oggetto 1. main() Principale 2. p = new Principale() 3. p.esegui() 5. schermoiniziale() 9. schermotentativi() p : Principale 7. nome = Console.leggiStringa() 10. tentativo = Console.leggiIntero() 4. r = new Record() r : Record 6. p = new Partita() 8. p.setnome(nome) 11. p.gestiscitentativo(tentativo) 12. p.gettrovato() il processo si ripete finchè l utente non indovina oppure interrompe la partita it.unibas.utilita.console p : Partita 14

8 Principale Console main() new p: Principale p.esegui() new r: Record schermoiniziale() new nome = leggistringa() p: Partita p.setnome(nome) Ripetizione [finchè!trovato] : schermotentativo() tentativo = leggitentativo() p.gestiscitentativo() trovato = p.gettrovato() 15 Diagrammi UML La Morra Cinese il diagramma dei casi d uso un possibile diagramma concettuale poi il diagramma delle classi finale dell applicazione un diagramma di collaborazione 16

9 La Morra Cinese it.unibas.morracinese Utente gioca partita utente Utente visualizza punteggi 17 La Morra Cinese in questo caso sono state omesse le associazioni ridondanti; il grafo risultante è aciclico Gioco vittoriecomputer vittoriegiocatore relativa a > Giocatore nome gioca > * Partita * manivintedalgiocatore manivintedalcompute pareggi sono state omesse le cardinalità pari a 1 relativo a > Oggetto valore giocato in > 2 * * Mano esito 18

10 La Morra Cinese Principale + static void main() + void gioca() + Gioco getgioco() - void schermomenuprincipale() - String schermoiniziale() - void schermovittore() Gioco - String nomegiocatore - int partitevintegiocatore - int partitevintecomputer + void setnomegiocatore() + int getpartitegiocatore() + int getpartitecomputer() + void gestiscipartita(partita) Mano - int giocatagiocatore - int giocatacomputer - static java.util.random generatore + void gioca(int) + boolean isvalida() + int getgiocatagiocatore() + int getgiocatacomputer() - void setgiocatagiocatore() - void generagiocatacomputer() + int getesito() ControlloPartita - Gioco gioco + static String getsimobolo(int) + static String getgiocata(int) + void setgioco(gioco) - void giocanuovapartita() - int schermomenupartita() - void schermoesitomano() - void schermoesitopartita() - void schermopartitainterrotta() ATTENZIONE: NON ci sono associazioni tra gli oggetti (per scelta di progetto) Partita - int manivintedalcomputer - int manivintedalgiocatore - int pareggi + int getmanivintedalgiocatore() + int getmanivintedalcomputer() + int getpareggi() + void gestiscimano(mano) + int getstato() 19 La Morra Cinese: Collaborazione ControlloPrincipale 1. main() 2. p = new Principale() p.esegui() 6. schermovittorie() p : ControlloPrincipale 3. g = new Gioco() il processo si ripete finchè la partita non termina g : Gioco 13. g.gestiscipartita(p) 14. p.getstato() 4. cp = new ControlloPartita() 5. cp.setgioco(g) p : Partita 7. cp.giocanuovapartita() cp : ControlloPartita 8. p = new Partita() 11. p.gestiscimano(m) 11. m.getstato() 12. p.getstato() l utente sceglie il caso d uso n. 2 (punteggi) l utente sceglie il caso d uso n. 1 (partita) 9. m = new Mano() m : Mano 10. m.gioca(mossagiocatore) 20

11 La Piattaforma Java Package e classi notevoli il package java.util le collezioni java.util.random java.lang.stringbuffer >> java.util in Jdk1.4 Il package java.util è noto principalmente come il package delle collezioni di Java 21 Le Collezioni Le collezioni principali di java.util java.util.list (interface) java.util.arraylist java.util.linkedlist Le vecchie collezioni java.util.stack java.util.vector: precedente implementazione di ArrayList, viene considerata deprecata 22

12 Le Collezioni Altre collezioni (>>) java.util.treeset: insieme (collezione non ordinata priva di duplicati) rappresentato sotto forma di albero java.util.hashmap: mappa associativa java.util.sortedmap: mappa ordinata rappresentata sotto forma di albero 23 Le Collezioni La filosofia delle collezioni di J2SE 1.4 è necessario fornire collezioni che consentano un utilizzo con tipi diversi la soluzione di J2SE fino a 1.4 è fissare il tipo della collezione (collezione di riferimenti a Object) ma scegliendo un tipo degli elementi sufficientemente generico da consentire di inserire riferimenti ad oggetti qualsiasi 24

13 Le Collezioni java.util.arraylist lista rappresentata con array e indicatore di riempimento limite tradizionale: dimensione fissata dell array in questo caso questo limite non esiste Com è possibile? trucco collegato all utilizzo degli oggetti 25 Le Collezioni >> ArrayList.java In sintesi alla creazione, la classe crea un array di 10 riferimenti ad Object quando l array si riempie, crea un nuovo array di dimensione 1.5 volte la precedente copia tutti i vecchi riferimenti nel nuovo array sostituisce il vecchio array con il nuovo (cambiando il valore del riferimento) 26

14 Le Collezioni java.util.linkedlist lista con rappresentazione doppiamente collegata ma in Java non ci sono i puntatori Com è possibile? al posto dei puntatori vengono utilizzati i riferimenti puntatori e riferimenti sono intercambiabili 27 Le Collezioni l: LinkedList header e1: Entry e2: Entry e3: Entry valore In sintesi size viene utilizzata una ulteriore classe Entry ciascun elemento della lista è un oggetto di tipo Entry con valore, riferimento all elemento successivo, riferimento all elemento precedente la lista contiene un riferimento all oggetto di tipo Entry che rappresenta la testa nota: manca il puntatore alla coda (>>) prev next valore prev next valore prev next 28

15 Le Collezioni >> java.util.arrays La classe java.util.arrays vari metodi statici che implementano operazioni notevoli sugli array es: equals (confronto tra array) es: binarysearch (ricerca binaria) es: sort (ordinamento) Un altro metodo utile System.arraycopy: per copiare un array in un altro 29 Tipi Generici ATTENZIONE tipi generici J2SE 5.0 Una nota importante il rilascio di J2SE 1.5 ha completamente cambiato l approccio alle collezioni sono stati infatti introdotti i tipi generici Tipo generico tipo parzialmente specificato il nome del tipo contiene un parametro per completare la sua definizione è necessario specificare un argomento 30

16 Tipi Generici Nota il parametro rappresenta a sua volta un tipo (cosa del tutto non convenzionale) e quindi anche l argomento Sintatticamente i tipi parametro sono inclusi tra < > Esempio di dichiarazione di tipo generico ArrayList<T> T è un parametro che rappresenta un tipo 31 Tipi Generici Idea dei generici nella dichiarazione viene specificato il parametro (tipo generico) all utilizzo il programmatore fornisce l argomento (tipo specifico) public class ArrayList<T> { private T arrayelementi[]; public ArrayList<T>() {...} public T get(int i) {...} } tipo parametro tipo argomento // in Studente ArrayList<Esame> esami = new ArrayList<Esame>(); 32

17 Tipi Generici Fornendo l argomento il codice della classe è come se fosse riscritto sostituendo T con Esame public class ArrayList<T> { private T arrayelementi[]; public ArrayList<T>() {...} public T get(int i) {...} } public class ArrayList<Esame> { private Esame arrayelementi[]; public ArrayList<Esame>() {...} public Esame get(int i) {...} } // in Studente ArrayList<Esame> esami = new ArrayList<Esame>(); 33 Tipi Generici La filosofia di J2SE 1.5 l obiettivo è sempre fornire collezioni che consentano un utilizzo con tipi diversi la soluzione di J2SE fino a 1.5 è utilizzare tipi generici per le collezioni (ovvero tipi parzialmente specificati) chiedendo poi al programmatore di definire il tipo specifico al momento dell utilizzo della collezione 34

18 Tipi Generici Vantaggio n. 1 primo vantaggio: avendo le collezioni un tipo definito è possibile omettere i cast quando si estraggono gli oggetti // senza generici ArrayList esami = new ArrayList(); esami.add(new Esame()); Esame e = (Esame)esami.get(0); // con i generici ArrayList<Esame> esami = new ArrayList<Esame>(); esami.add(new Esame()); Esame e = esami.get(0); 35 Tipi Generici Vantaggio n. 2 il compilatore è in grado di effettuare tutti i controlli sui tipi a tempo di compilazione si evitano errori a tempo di esecuzione // senza generici ArrayList esami = new ArrayList(); esami.add(new Esame()); Studente s = (Studente)esami.get(0); viene sollevato un errore di tipo ClassCastException a tempo di esecuzione // con i generici ArrayList<Esame> esami = new ArrayList<Esame>(); esami.add(new Esame()); Studente s = esami.get(0); il compilatore segnala l errore di tipo a tempo di compilazione 36

19 Tipi Generici Nota in effetti, è un comportamento molto simile a quello degli array in effetti, il tipo array di Java è sempre stato un tipo generico il cui tipo delle componenti viene specificato alla creazione dell array es: String[] vettore = new String[]; 37 Tipi Generici Il package java.util in J2SE 1.5 è disseminato di tipi generici >> java.util in Jdk1.5 In altri termini i generici sono considerati lo strumento standard della nuova versione di Java anche se, per ragioni di compatibilità, è ancora possibile utilizzare le vecchie collezioni di J2SE

20 Tipi Generici Non utilizzando i generici il compilatore segnala dei messaggi di avvertimento durante la compilazione Unchecked Warning avvertimento che c è un operazione per cui il controllo di tipo non è perfetto es: utilizzo di una collezione tradizionale Note: ProvaGenerici.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 39 Tipi Generici ATTENZIONE all approccio ai tipi generici In realtà, però... al di là di questa presentazione superficiale, i generici hanno una semantica complessa non sono utilizzabili sulle vecchie macchine virtuali i vantaggi non sono straordinari nella maggior parte delle applicazioni tutto sommato quindi possono essere evitati in questo corso non verranno utilizzati oltre 40

21 La Classe java.util.random La classe java.util.random costruisce generatori di numeri casuali In particolare il costruttore crea un oggetto che è un generatore di numeri casuali inizializzandone il seme con il valore dell orologio per ottenere la sequenza pseudo-casuale: int nextint(int max) 41 La Classe java.util.random Attenzione all utilizzo due oggetti di tipo Random creati l uno dopo l altro avranno lo stesso valore del seme e genereranno la stessa sequenza Esempio public static void main(string[] args) { java.util.random gen1 = new java.util.random(); java.util.random gen2 = new java.util.random(); System.out.println(gen1.nextInt() + + gen2.nextint()); } i numeri generati saranno identici 42

22 La Classe java.util.random Di conseguenza è opportuno creare un unico generatore una volta per tutte e utilizzarlo tutte le volte che serve una buona pratica: generatori statici Un metodo alternativo System.Math.random() 43 La Classe java.util.random package it.unibas.indovinasemplice; public class Partita { private static java.util.random generatore = new java.util.random(); private String nome; private String suggerimento; private int numerodaindovinare; private int numeroditentativi; private boolean trovato; public Partita() { this.numerodaindovinare = Math.abs(Partita.generatore.nextInt(100) + 1); this.trovato = false; this.numeroditentativi = 0; this.suggerimento = "Ho scelto un numero tra 1 e 100. Prova a indovinarlo."; } 44

23 La Classe java.util.random package it.unibas.morracinesesemplice; public class Mano { } private static java.util.random generatore = new java.util.random(); private void generagiocatacomputer() { this.giocatacomputer = Math.abs(Mano.generatore.nextInt(3) + 1); } String e StringBuffer java.lang.string rappresenta stringhe immutabili ogni volta che concateno stringhe (+) di fatti sto costruendo nuove stringhe In alcuni casi è necessario costruire stringhe concatenando assieme molti pezzi in questi casi può essere opportuno utilizzare uno StringBuffer invece che String 46

24 String e StringBuffer >> java.lang.stringbuffer StringBuffer classe i cui oggetti rappresentano stringhe modificabili I principali metodi append(): concatena alla stringa un altra stringa setcharat(int i): cambia il carattere i-esimo insert(): inserisce una stringa in un altra 47 private static String getsimbolo(int mossa) { StringBuffer simbolo = new StringBuffer(); if (mossa == Mano.CARTA) { simbolo.append(" \n"); simbolo.append(" \\ \n"); simbolo.append(" \n"); simbolo.append(" \n"); simbolo.append(" \n"); } else if (mossa == Mano.FORBICI) { simbolo.append(" \\\\ // \n"); simbolo.append(" \\\\ // \n"); simbolo.append(" \\\\// \n"); simbolo.append(" //\\\\ \n"); simbolo.append(" // \\\\ \n"); simbolo.append(" () () \n"); } else if (mossa == Mano.SASSO) { simbolo.append(" \n"); simbolo.append(" ( ) \n"); simbolo.append("( ( ) \n"); simbolo.append("( ) \n"); } return simbolo.tostring(); } 48

25 Enumerazioni Un ultima annotazione rappresentazione dei valori di tipi enumerabili nella Morra Cinese (oggetto ed esito) La soluzione tradizionale di Java costanti intere Esempio: nella classe Gioco public final static int CARTA = 1; public final static int FORBICI = 2; public final static int SASSO = 3; 49 Enumerazioni Vantaggi di questo approccio molto semplice da utilizzare (es: acquisire i dati, scrivere il codice) Svantaggi di questo approccio il compilatore non effettua nessuna verifica sui valori della giocata qualsiasi valore intero è in linea di principio accettabile come valore della giocata 50

26 Enumerazioni ATTENZIONE alle enumerazioni J2SE 5.0 A partire da J2SE 1.5 è possibile definire in Java enumerazioni Enumerazione ( Typesafe Enum ) classe Java semplificata i cui membri sono esclusivamente costanti ciascuna costante è un oggetto trasformabile in stringa con tostring() e in intero con ordinal() 51 Enumerazioni Esempio una enumerazione per l oggetto giocato public enum Oggetto {CARTA, FORBICI, SASSO}; Semantica definisce un nuovo tipo (Oggetto) i cui membri costanti sono i riferimenti di tipo Oggetto Oggetto.CARTA, Oggetto.FORBICI, Oggetto.SASSO Oggetto.CARTA.toString() -> CARTA Oggetto.CARTA.ordinal() -> 0 52

27 Enumerazioni package it.unibas.morracinese; essendo una classe, se è contenuta nel file Mano.java non può essere pubblica ma deve essere friendly; alternativa: in Oggetto.java enum Oggetto {CARTA, FORBICI, SASSO}; public class Mano { private Oggetto giocatagiocatore; private Oggetto giocatacomputer; public boolean isvalida(int giocata) { return (giocata >= Mano.CARTA.ordinal() && giocata <= Mano.SASSO.ordinal()); } Enumerazioni Attenzione enum è una parola chiave nuova introdotta in J2SE 5.0 (prima non lo era) riduce la compatibilità con il codice esistente (es: classe che ha una proprietà o variabile chiamata enum ) Per risolvere questo problema è necessario compilare il codice con un opzione particolare 54

28 Enumerazioni Il livello dei sorgenti opzione source es: javac source 1.5 Mano.java valore standard: 1.3 Se il livello è 1.3 enum non è una parola riservata, ma non è consentito usare enumerazioni Se il livello è 1.5 enum è una parola riservata, non è consentito usarla come identificatore 55 Ruoli e Responsabilità: Conclusioni >> Sommario Riassumendo Riepilogo Diagrammi UML API di Java Le Collezioni Tipi Generici java.util.random String e StringBuffer Enumerazioni 56

29 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare oppure inviare una lettera all indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 57

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione 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)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Strati Applicativi versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - d Regole Sintattiche e Semantiche versione 1.2 Questo lavoro è concesso in uso secondo i termini di

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Incapsulamento versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte c versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Uso dei Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti Sintassi e Semantica Parte b: Peculiarità di Java versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Introduzione versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java : Conclusioni versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Collezioni Parte b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: C# versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Concetti Avanzati versione 2.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Strato di Persistenza versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: C# versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Clonazione e Serializzazione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 3 Istruzioni Iterative (Cicli) versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 1 Introduzione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 6 Metodologia di Sviluppo - b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Date versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 6 Il FORTRAN versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 5 Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo in Azione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: C# Parte a versione 1.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

18 - 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 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

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Conclusioni - Parte b Riflessione versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 1 Architettura del Calcolatore versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Concetti Avanzati Tecniche di Test e Correzione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Presentazione del Corso Anno Accademico 2003-2004 http://www.db.unibas.it/users/mecca/corsi/progoggettii versione 1.0 Questo lavoro è concesso in

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati La Matrice versione. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

STRUTTURE DATI: OLTRE GLI ARRAY LISTE

STRUTTURE DATI: OLTRE GLI ARRAY LISTE STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 3 - Tipi di dato e strutture di dati This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license,

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2008 Negli esercizi fate riferimento alle

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: Tecnologie versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

9 - 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 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

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio 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

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio 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

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio 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.

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

E7 Esercizi sul Capitolo 7 Realizzazione di Classi

E7 Esercizi sul Capitolo 7 Realizzazione di Classi E7 Esercizi sul Capitolo 7 Realizzazione di Classi Esercizio 1 (esercizio 7.1 del libro di testo). Nella classe Studente definita di seguito indicare le variabili d istanza, le variabili di classe e le

Dettagli

Java SE 7. Introduzione.

Java SE 7. Introduzione. Java SE 7 Introduzione diegozabot@yahoo.it ursula.castaldo@gmail.com Java Java è un linguaggio di programmazione. Inizialmente usato per creare semplici programmi nelle pagine web (chiamati applets), Java

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Elementi di base di un programma Dichiarazione dei dati in un programma Sommario Panoramica Elementi di Base di un Programma Struttura Direttive Elementi Sintattici di Base Commenti

Dettagli

E21 Esercizi sulle collezioni in Java

E21 Esercizi sulle collezioni in Java E21 Esercizi sulle collezioni in Java Esercizio 1. Sia data una classe Contatto le cui istanze rappresentano contatti telefonici. Ogni contatto ha un nome, un cognome e un numero telefonico (tutti di tipo

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Introduzione versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Le basi del linguaggio Java

Le 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

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione 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

Dettagli

Fondamenti di Informatica T-1

Fondamenti 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

Dettagli

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione 1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere

Dettagli

Capitolo 12: Vettori e array. Capitolo 12. Vettori e array Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Capitolo 12: Vettori e array. Capitolo 12. Vettori e array Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 Capitolo 12 Vettori e array 1 Figura 1 Aggiungere un elemento in una posizione intermedia di un vettore 2 Figura 2 Rimuovere un elemento da una posizione intermedia di un vettore 3 File Purse.java import

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Eccezioni: Gestione dei Flussi versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array Array Una matrice (array) è un insieme ordinato e omogeneo di dati: è una variabile che contiene uno o più valori in sequenza ordinata. Questi valori si chiamano "elementi" e devono avere lo stesso tipo

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Collezioni, mappe e iteratori (a cura del Prof. Marco Patella)

Collezioni, mappe e iteratori (a cura del Prof. Marco Patella) , mappe e iteratori (a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA7 A1 Vector, Arrays e StringBuffer 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Algoritmi notevoli sul vettore 2 1 Introduzione In questa

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione 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

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

Dettagli

Introduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011

Introduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011 13 aprile 2011 Cos è una collezione? Gerarchia delle collezioni Introduzione Una collezione è semplicemente un oggetto che raggruppa più oggetti (detti elementi della collezione) in una singola unità.

Dettagli

Introduzione ai Calcolatori Elettronici

Introduzione ai Calcolatori Elettronici Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi

Dettagli

19 - 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 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

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Capitolo 4 - Strutture di dati elementari This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit

Dettagli

Alberi Binari Alberi Binari

Alberi Binari Alberi Binari Alberi Binari Alberi Binari Un albero binario è una collezione di elementi organizzati in modo non sequenziale secondo un grafo aciclico caratterizzato da Radice Due sotto-alberi (il sotto-albero destro

Dettagli

ArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

ArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni ArrayList Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni ArrayList Sotto diversi aspetti un ArrayList può essere considerato come un array migliore. I Miglioramenti sono

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare

Dettagli

Strutture dati: array & co.

Strutture dati: array & co. Strutture dati: array & co. Fondamenti di programmazione Java Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Linguaggi di Programmazione: Paradigmi di Programmazione

Linguaggi di Programmazione: Paradigmi di Programmazione Linguaggi di Programmazione: Paradigmi di Programmazione Strutture Dati: & Co. Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149 Torino (Italy)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Conclusioni versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA7 B3 Gestione di una coda 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Concetto di coda e operazioni relative

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica Web: http://www.scienze.univr.it/fol/main?ent=oi&id=34121 Docente: Carlo Drioli Email: drioli@sci.univr.it 2007/2008 Lucidi a cura di Nicola Drago,

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Librerie per XML versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Pattern nelle API di Java versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5 Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare

Dettagli

Il linguaggio C Strutture

Il linguaggio C Strutture Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright Mirko Viroli Copyright 2017, 2018 Moreno

Dettagli

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione 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

Dettagli