ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________ 1.Associare tramite una freccia ogni parola chiave nellelenco alla rispettiva operazione: ( Nota Bene: Le parole chiave possono essere assegnate ad una, nessuna o più operazioni.. Una operazione può essere assegnata ad una, nessuna o più parole chiave. ) A)Derivazione B)Modificatore daccesso C)Creazione Interfaccia D)Astrazione E)Istanziazione oggetto F)Implementazione Interfaccia G)Accesso package 2.Rispondere con una V se ritenete laffermazione vera o con una F se la ritenete falsa : ___Un package è una collezione di programmi Java. ___Una classe derivata da una classe astratta ne deve implementare tutti i metodi astratti prima di poter essere istanziata. ___Lutilizzo di un package permette il riutilizzo di codice scritto da altri. ___Per creare una classe astratta si utilizza la parola chiave Extends. ___Una classe astratta non può essere istanziata. ___Per ottenere laccesso ad un package si utilizza la parola chiave Extends seguito dal nome del package. ___Una classe astratta non ha il metodo costruttore. ___Se una classe è astratta significa che si può fare loverridding ma non loverloading. ___Lassociazione di un intero package tramite lutilizzo del.* deve essere effettuata con cautela perché comporta un degrado delle prestazioni. Pag. 1 di 6 1) Import 2) Final 3) Extends 4) Public 5) Comparable 6) Abstract 7) Static 8) New 9) Protected 10) Implements
Pag. 2 di 6 3.Dato il seguente grafico di relazione tra classi, contrassegnare le affermazioni a lato con una V se la ritenete vera o con una F se la ritenete falsa. 4.Consideriamo il caso in cui la classe Persona dellesempio precedente sia una classe astratta. Come andrebbero modificate le classi Studente e Professore? A)Un oggetto Persona può invocare il metodo aggiungiCorso. ___ B)Un oggetto Studente può invocare il metodo getNome ___ C)Un oggetto Professore può modificare il valore di un attributo di Persona (Es. indirizzo) da cui eredita, solo se tale attributo è dichiarato public ___ D)Un oggetto Studente può invocare il metodo visualizza di Persona solo usando la parola chiave super ___ E)Un oggetto Professore, tramite loggetto Persona può accedere allattributo matricola di Studente ___ F)Una classe Studente non può implementare un metodo aggiungiCorso perché già presente nella classe Professore ___
Pag. 3 di 6 5.Quali delle seguenti affermazioni sul casting sono vere? (Contrassegnare le vere con una croce) ___Il casting può essere implicito, esplicito e assoluto. ___Se a è un intero e b è un long allora listruzione b = a; è una operazione sicura. ___Il casting esplicito si utilizza quando loperazione può essere pericolosa, ovvero quando si converte un tipo di dato che occupa meno spazio in memoria verso un altro tipo di dato più grande. ___Per fare il casting esplicito di una variabile occorre farla precedere dal tipo di destinazione racchiuso tra parentesi tonde. ___Il casting tra due oggetti con legame di ereditarietà non è consentito. ___E possibile effettuare il casting tra un tipo primitivo ed un oggetto. 6.Quali delle seguenti affermazioni sul casting sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) ___Le interfacce sono classi che possono contenere solamente costanti e metodi distanza astratti. ___Per creare uninterfaccia si utilizza la parola chiave comparable. ___Una interfaccia non può contenere né costruttori, né variabili statiche, né variabili di istanza, né metodi statici. ___Se una classe implementa una interfaccia, significa che contiene al suo interno una implementazione di tutti i metodi dichiarati nellinterfaccia stessa. ___Se una classe implementa una interfaccia, non deve avere attributi statici. ___Il meccanismo dellinterfaccia permette di separare la fase di progettazione dalla fase di implementazione, utile soprattutto nei progetti di medie/grandi dimensioni 7.Scrivere nel box sottostante quali sono le principali differenze tra un Array ed un Vector, non tanto a livello di nome di istruzioni, quanto alle differenze concettuali.
Pag. 4 di 6 8.Inserire la parola corretta negli spazi vuoti. Ogni parola può essere usata una, più volte o mai. Eccezione – Dinamica – Oggetto – Pop – Tipo fondamentale –Associativa – Statica – Push Classe Involucro – Valore – Coda – Pila – Interfaccia – Attributo – Stringa – Chiave 1) Una ___________________ serve per racchiudere un _____________________________ 2) La struttura dati Vector è una struttura dati _____________________________________ 3) Un _______________ può essere inserito in un Vector con il metodo ________________ 4) La struttura dati Hashtable è una struttura dati ___________________________________ 5) Per ogni ____________________ esiste una ____________________________________ 6) Se chiamo il metodo ____________ di una __________ estraggo lelemento inserito per 1° 7) La _______________________________________ si basa su una politica di accesso LIFO 8) LHashtable associa ad ogni ____________________ un __________________________ 9.Quali delle seguenti affermazioni sono vere? (Segnare con una croce tutte le affermazioni che ritenete corrette) ___Il metodo peek() di una Stack serve per leggere lelemento in cima alla Pila. ___Un oggetto Enumeration permette di scorrere gli elementi contenuti in una Hashtable. ___Il metodo Push prende come parametro loggetto da inserire nella Pila (o Coda) ___Il metodo isEmpty() di una Stack (o di una Queue) restituisce false se è vuota. ___Il metodo MoreElement() appartiene ad un oggetto Enumeration. ___Il metodo Pop prende come parametro loggetto da togliere nella Pila (o Coda) 10.Inserire la parola corretta negli spazi lasciati vuoti: Java.util - Java.lang - statica - Java.java - Java.date - assoluta - Java.io - dinamica - Java.text - Java.data - gerarchica - Java.common - Java.random - Java.default A)La libreria Random, fa parte della libreria ______________________________ B)La libreria __________________ contiene funzioni comuni del linguaggio C)Lorganizzazione dei package ha una struttura______________________ per lassegnamento dei nomi in modo da evitare eventuali collisioni in caso in cui alcuni programmatori usino lo stesso nome per differenti definizioni di classe. D)La libreria _________________________ non necessita di essere importata perché è sempre disponibile di default. E)Le classi delle strutture dati fanno parte della libreria ___________________ F)La libreria ______________________ è utilizzata per richiamate metodi necessari per la formattazione di input ed output.
11.Spiegare brevemente nel box sottostante cosa sono le eccezioni e come possono essere gestite (ovvero la sintassi dellistruzione usata per la loro gestione…) Pag. 5 di 6 12.Quali delle seguenti affermazioni relative alle eccezioni sono vere? (Segnare con una croce tutte le affermazioni che ritenute corrette) ___Quando viene intercettata una eccezione, il sistema risale dal metodo in cui si è verificata tale leccezione verso il metodo chiamante, cercando qualcuno che sia in grado di gestirla.. ___Leccezione ArrayIndexOutOfBoundException viene lanciata dal sistema quando si tenta di accedere ad un elemento dellarray che sta fuori della dimensione definita dellarray. ___E sempre possibile trovare qualcuno che gestisce un eccezione, prima di raggiungere il metodo main(). ___La parola chiave final viene utilizzata per indicare un blocco che deve essere eseguito in ogni caso, sia che uneccezione sia stata intercettata, sia che non se sia stata lanciata nessuna. ___Non tutte le eccezioni devono essere gestite. Alcune di queste quali ad esempio quelle che sono sottoclassi di Error e RuntimeException devo essere tralasciate. ___E possibile definire e lanciare delle eccezioni personalizzate. Per fare ciò si utilizza listruzione new Exception ( … );
Pag. 6 di 6 14.Scrivere un programma che legge due numeri interi da tastiera e ne stampa la somma. 13.Inserire la parola corretta negli spazi vuoti. Ogni parola può essere usata una, più volte o mai. Clear( ) - True - Cardinality( ) - Size( ) - Capacity( ) - False - Delete (i, j) - Set( i, j) - Front( ) A)Quando si istanzia un oggetto BitSet i suoi elementi sono settati tutti come __________ B)Il metodo __________________ setta come ________________ gli elementi compresi tra i e j che appartengono ad un BitSet. C)Il metodo ______________ restituisce il numero di bit settati _____________ nel BitSet D)Il metodo_______________ restituisce il numero di elementi contenuti in un vettore E)Per svuotare una pila si chiama il metodo ____________________________________ F)Il metodo _______________________ restituisce la dimensione di un vettore, mentre il metodo ______________________ restituisce il numero elementi che il vettore in oggetto contiene. E)Il metodo _______________________ non esiste per nessuna struttura vista a lezione. public static void main(String[] args) { }