Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
– {NORD, SUD, EST, OVEST}
I nomi dei valori di un tipo enum sono in lettere maiuscole trattandosi di costanti
un esempio di definizione di un tipo enum può essere:
public enum Giorno {
LUNEDI, MARTEDI, MERCOLEDI, GIOVEDI,
VENERDI, SABATO, DOMENICA }
cosa sono le classi numeriche in Java? Si faccia un esempio di utilizzo 26
cosa sono le espressioni regolari?
cosa sono le interfacce in Java (costrutto interface)
le interfacce definiscono un tipo
Una interfaccia (interface) in Java ha una struttura simile a una classe, ma può contenere SOLO metodi
d'istanza astratti e costanti(quindi non può contenere costruttori, variabili statiche, variabili di
istanza e metodi statici). Si può dichiarare che una classe implementa (implements) una data interfaccia:
in questo caso deve realizzare tutti i suoi metodi astratti, fornendo dei metodi con la stessa intestazione
(e con il corpo, naturalmente). La realizzazione di un metodo deve rispettare la specifica del
corrispondente metodo astratto. Le interfacce possono essere utilizzate:
• per definire Tipi di Dati Astratti
• come contratto tra chi implementa una classe e chi la usa: le due parti possono essere sviluppate
e compilate separatamente;
• per evidenziare funzionalità comuni a più classi, sopperendo alle limitazioni dell'ereditarietà
singola
cosa vuol dire fare flush di uno stream bufferizzato?
cancellare il suo contenuto
Da cosa è costituito un programma Java nella sua forma statica ?
è costituito da un insieme di definizioni di classi
Nella sua forma statica (codice sorgente), un programma Javaè costituito da un insieme di definizioni di
classe 27
Descrivere a parole come avviene la ricerca in una lista
Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure
l’elemento non è presente nella sequenza stessa. In generale una sequenza di elementi si può realizzare
come un array. E la scansione avviene usando un indice. Se la sequenza non è ordinata a priori occorre
eseguire una ricerca lineare o sequenziale. Se la sequenza è ordinata è opportuno eseguire una ricerca
binaria. L’algoritmo di ricerca lineare (o sequenziale) in una sequenza (array) è basato sulla seguente
strategia:
• Gli elementi dell’array vengono analizzati in sequenza, confrontandoli con l’elemento da ricercare
(chiave) per determinare se almeno uno degli elementi è uguale alla chiave.
• Quando si trova un elemento uguale alla chiave la ricerca termina
La ricerca è sequenziale, nel senso che gli elementi dell’array vengono scanditi uno dopo l’altro
sequenzialmente. L’algoritmo prevede che al più tutti gli elementi dell’array vengano confrontati con la
chiave. Se l’elemento viene trovato prima di raggiungere la fine della sequenza non sarà necessario
proseguire la ricerca. L’algoritmo di ricerca lineare richiede che al più tutti gli elementi dell’array vengano
confrontati con la chiave. Questo è necessario perché la sequenza non è ordinata. Se la sequenza su cui
occorre effettuare la ricerca è ordinata si può usare un algoritmo di ricerca molto più efficiente che cerca
la chiave sfruttando il fatto che gli elementi della sequenza sono già disposti in un dato ordine. Esempi di
sequenze ordinate: elenco telefonico, agenda, etc. In questi casi si usa un algoritmo di ricerca binaria che
è più efficiente perché riduce lo spazio di ricerca. L’algoritmo di ricerca binaria cerca un elemento in una
sequenza ordinata in maniera crescente (o non decrescente) eseguendo i passi seguenti finché l’elemento
viene trovato o si è si è completata la ricerca senza trovarlo: 1. Confronta la chiave con l’elemento
centrale della sequenza, 2. Se la chiave è uguale all’elemento centrale, allora la ricerca termina
positivamente, 3. Se invece la chiave è maggiore dell’elemento centrale si effettua la ricerca solo sulla
sottosequenza a destra, 4. Se invece la chiave è minore dell’elemento centrale dello spazio di ricerca, si
effettua la ricerca solo sulla sottosequenza a sinistra.
è possibile utilizzare una struttura dati array per realizzare un tipo di dato astratto Lista? Come?
La conversione di un array in una lista (metodo asList())
la limitazione con array ha una lunghezza fissa, quindi se è piena non è possibile aggiungere altri
elementi ad essa, allo stesso modo se viene rimosso un numero di elementi da esso il consumo di
memoria sarebbe lo stesso in quanto non si riduce. ArrayList può crescere e restringersi
dinamicamente dopo l'aggiunta e la rimozione di elementi. Oltre a questi vantaggi, la classe
ArrayList ci consente di utilizzare metodi predefiniti che rendono facile il nostro compito.
Possiamo creare un ArrayList scrivendo una semplice istruzione come questa: ArrayList alist =
new ArrayList (); allo stesso modo possiamo creare ArrayList che accetta elementi int.
ArrayList list = new ArrayList ().
Per creare un elenco di array in Java, dichiarare una variabile ArrayList e chiamare il costruttore
ArrayList per creare un'istanza di un oggetto e assegnarlo alla variabile: ArrayList friends = new
ArrayList (); è possibile opzionalmente specificare una capacità nel costruttore ArrayList:
ArrayList friends = new ArrayList (100). Si noti che la capacità non è un limite fisso. La classe
ArrayList aumenta automaticamente la capacità della lista ogni volta che è necessario.
Aggiungiamo elementi a un ArrayList usando il metodo add (), questo metodo ha un paio di
varianti, che possiamo usare in base al requisito. Usiamo il metodo remove () per rimuovere
elementi da un ArrayList. Gli elementi ArrayList fanno riferimento all'istanza ArrayList.
In ambito di programmazione Object Oriented, cosa si intende con il termine "costruttore"? Motivare la
risposta
Un costruttore è una componente di codice che viene chiamata automaticamente quando la classe viene
istanziata, e provvede all’inizializzazione dell’oggetto. • Un costruttore è simile a un metodo, ma ne
differisce per due aspetti: – Un costruttore non viene mai chiamato esplicitamente, ma viene attivato dal
sistema in fase di inizializzazione dell’oggetto. – Un costruttore non ritorna alcun valore. 28
In ambito di programmazione Object Oriented, cosa si intende con il termine "interfaccia"? Motivare la
risposta
Un’interfaccia è l’insieme delle dichiarazioni(o signature) dei metodi pubblicidi una classe. La signaturedi
un metodo comprende il nome del metodo, il tipo del valore ritornato, il numero e tipo dei parametri di
chiamata, ma nonil corpo del metodo (implementazione).
In ambito di programmazione Object Oriented, cosa si intende con il termine "metodo"? Motivare la
risposta
Un metodo è una funzione definita all’internodi una classe. Un metodo opera solo sugli oggetti istanze di
tale classe
In ambito di programmazione Object Oriented, cosa si intende con il verbo "istanzare" (un oggetto)?
Motivare la risposta
Istanziare un oggetto di una determinata classe significa allocare dinamicamente spazio di memoria per le
variabili definite in tale classe
in generale cosa si intende per stream di I/O?
un flusso sequenziale di dati che entrano e/o escono da un programma
In Java a cosa si applicano i modificatori di accesso? Motivare la risposta
I modificatori di accesso regolano la possibilità di accedere ad una Classe, ad un metodo o ad un
attributo, da parte di una Classe o di un metodo, esterno od interno alla Classe stessa. In genere,
solo le variabili di Classe, ma non è obbligatorio, hanno un modificatore che ne specifica la
visibilità, le variabili dichiarate all'interno dei metodi non hanno modificatori di visibilità, d'altra
parte esse sono visibili solo all'interno del metodo stesso.
in Java come si generano le eccezioni?
slide 16
in Java cosa è Exception?
una classe
Le Exception modellano errori non fatali. Tipicamente, un programma Java cattura e/o lancia queste
eccezioni. Le eccezioni controllate sono eccezioni derivate da Exception che il compilatore controlla che
siano rilanciate oppure catturate.
In Java quale è la signature corretta del metodo main? Motivare la risposta
Il metodo main() viene automaticamente eseguito all’attivazione del programma, passandogli i parametri
specificati a riga di comando. La signature del metodo è:
public staticvoidmain(Stringargs[]) { …… }Il metodo main() è preceduto dai
modificatori public, static e void.Il modificatore public rende il metodo richiamabile dal codice Java
esterno alla classe; Il modificatore static permette di richiamare un metodo di una classe senza dover
prima creare un oggetto della classe.Il modificatore void indica che il metodo non restituisce nessun
valore. 29
In Java, di cosa necessita una classe affinchè possa diventare un programma eseguibile?
Affinchè una classe possa diventare un programma eseguibile, bisogna definire il metodo main fatto così:
publicstaticvoidmain(Stringargs[]) { … }
Il metodo main() viene automaticamente eseguito all’attivazione del programma, passandogli i parametri
specificati a riga di comando
in Java, quando si parla di standard stream a cosa ci si riferisce?
in Java, se s1 e s2 sono oggetti di tipo String, qual è il risultato di s1+s2? Motivare la risposta
Averndo 2 stringhe s1 e s2 con l’istruzione s1+s2 concateneremo le 2 stringhe, dove la s2 sarà
aggiunta alla fine di s1
In una architettura multi-tier, si introduca il livello client
In una architettura multi-tier, si introduca il livello data 30
In una architettura multi-tier, si introduca il livello intermedio
il livello intermedio, costituito da moduli
software ospitati nel web server: spesso questo
livello si articola in due ulteriori sotto-livelli:
• Il web tier
• Il business tier
vedi risposte successive se vuoi allungare
In una architettura multi-tier, si introduca il sottolivello business
In una architettura multi-tier, si introduca il sottolivello web 31
Nei linguaggi funzionali, cosa sono le funzioni di ordine superiore? Argomentare la risposta
quale è la clausola (parola chiave) per lanciare una eccezione in Java?
In Java per lanciare una eccezione viene utilizzata la clausola (parola chiave) throw
quali sono i principi fondamentali della programmazione ad oggetti?
La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di
programmazione che prevede di raggruppare in un’unica entità (la classe) sia le strutture dati che le
procedure che operano su di esse, creando per l’appunto un “oggetto” software dota