Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono...
Transcript of Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono...
JJ II
J I
GOCCE DI JAVA
Capitolo 5
Domande vero-falso
Selezionando una risposta, il bottone corrispondente diventa verde sela risposta e giusta, altrimenti diventa rosso.
JJ II
J I
3
1. Esiste una corrispondenza ben precisa fra nomi delleclassi e nomi di file: in un file sorgente ci puo essereun’unica classe ‘public’, che deve avere lo stesso nomedel file.
Vero
Falso
JJ II
J I
4
2. Un’eccezione non catturata si propaga verso l’esterno,di blocco in blocco: se raggiunge il main, provoca laterminazione immediata del programma.
Falso
Vero
JJ II
J I
5
3. Se in un’istruzione try-catch e presente la clausola finally,il suo blocco di istruzioni viene comunque eseguito (in-dipendentemente dal fatto che un’eccezione sia stata ge-nerata/catturata o meno).
Falso
Vero
JJ II
J I
6
4. La programmazione orientata agli oggetti incapsula datie metodi in classi: i dati ed i metodi di una classe sonofortemente collegati tra di loro.
Falso
Vero
JJ II
J I
7
5. Come l’istanza di un tipo di dato primitivo (come int)e detta variabile, cosı l’istanza di un tipo classe e dettaoggetto.
Falso
Vero
JJ II
J I
8
6. Tutti gli oggetti Java sono passati per valore.
Falso
Vero
JJ II
J I
9
7. La definizione di una classe con modificatore public de-ve essere memorizzata in un file che ha esattamente lostesso nome della classe e come estensione .class.
Falso
Vero
JJ II
J I
10
8. Ogni classe Java e una sottoclasse di Object e, quindi,eredita i metodi definiti nella classe Object.
Falso
Vero
JJ II
J I
11
9. Le parole chiave public e private sono nomi di variabilid’istanza.
Falso
Vero
JJ II
J I
12
10. Quando un oggetto viene creato, generalmente le sue va-riabili d’istanza sono incapsulate nell’oggetto e possonoessere utilizzate solo attraverso metodi della classe del-l’oggetto (normalmente attraverso i metodi privati dellaclasse).
Falso
Vero
JJ II
J I
13
11. Normalmente si hanno diversi costruttori per un classe:cio puo essere ottenuto attraverso la sovrascrittura deicostruttori.
Falso
Vero
JJ II
J I
14
12. Per scrivere il miglior programma possibile, il program-matore deve conoscere perfettamente i dettagli internidi ogni classe che il programma utilizza.
Falso
Vero
JJ II
J I
15
13. Spesso, le classi possono essere derivate da altre clas-si che forniscono operazioni che le nuove classi posso-no utilizzare, oppure includono come campi oggetti dialtre classi: tale riutilizzo del software puo migliorareenormemente la produttivita di un programmatore.
Falso
Vero
JJ II
J I
16
14. I modificatori public e private sono utilizzati per con-trollare l’accesso alle variabili ed ai metodi d’istanza diuna classe.
Falso
Vero
JJ II
J I
17
15. I membri privati di una classe cosı come la definizionedei metodi pubblici (ovvero l’implemementazione dellaclasse) non sono accessibili a chi utilizza la classe.
Falso
Vero
JJ II
J I
18
16. Fornire un metodo set ed uno get per dei dati privati eequivalente a rendere quei dati pubblici.
Falso
Vero
JJ II
J I
19
17. Quando un oggetto viene creato, le sua variabili d’i-stanza devono essere esplicitamente inizializzate da unmetodo costruttore.
Falso
Vero
JJ II
J I
20
18. Le variabili d’istanza possono essere inizializzate impli-citamente al loro valore di default (0 per tipi numeri-ci, false per variabili Booleane e null per tipi clas-se), possono essere inizializzate in un costruttore oppurepossono essere impostate successivamente alla creazionedell’oggetto.
Falso
Vero
JJ II
J I
21
19. Se il programmatore non fornisce un costruttore sen-za argomenti, Java ne crea automaticamente uno per laclasse.
Falso
Vero
JJ II
J I
22
20. Se dei costruttori sono forniti per una classe, ma nes-suno di essi e un costruttore senza argomenti, e vieneeffettuato un tentativo di invocare un costruttore senzaargomenti per inizializzare un oggetto della classe, vienegenerato un errore di compilazione.
Falso
Vero
JJ II
J I
23
21. I metodi di una classe possono essere sovraccaricati, ov-vero diversi metodi di una classe possono avere esatta-mente lo stesso nome.
Falso
Vero
JJ II
J I
24
22. Variabili d’istanza pubbliche possono essere manipolatesolo dai metodi della classe.
Falso
Vero
JJ II
J I
25
23. I metodi set sono anche detti metodi mutatori (in quan-to tipicamente cambiano un valore).
Falso
Vero
JJ II
J I
26
24. Accedere a dati privati attraverso metodi set e get nonsolo protegge le varibili d’istanza dal ricevere valori noncorretti, ma anche isola gli utilizzatori della classe dal-la rappresentazione delle variabili: quindi, se la rappre-sentazione cambia (tipicamente, per motivi di migliora-mento delle prestazioni), solo l’implementazione dei me-todi di accesso deve essere modificata e gli utilizzatorinon devono effettuare alcun cambiamento fintanto chel’interfaccia fornita dai metodi rimane la stessa.
Falso
Vero
JJ II
J I
27
25. Il riutilizzo del software garantisce una qualita del codi-ce molto superiore a quella che normalmente potremmoottenere da soli.
Falso
Vero
JJ II
J I
28
26. Alcune varibili d’istanza devono poter essere modificateed altre no: il programmatore puo utilizzare la parolachiave constant per specificare che una variabile non emodificabile e che ogni tentativo di modificarla produceun errore.
Falso
Vero
JJ II
J I
29
27. Una variabile final non puo essere modificata da un’as-segnazione dopo che e stata inizializzata: una tale varia-bile deve essere inizializzata nella sua dichiarazione.
Falso
Vero
JJ II
J I
30
28. In un metodo che abbia un parametro formale con lostesso nome di uno dei campi della classe che lo contie-ne, bisogna usare la parola chiave this per accedere alcampo (altrimenti, faremmo incorrettamente riferimentoal parametro formale del metodo).
Falso
Vero
JJ II
J I
31
29. Ogni oggetto di una classe ha la propria copia di tuttele variabili d’istanza della classe.
Falso
Vero
JJ II
J I
32
30. Una variabile di classe statica rappresenta informazionespecifica di un oggetto ed ogni oggetto di una classe hala propria copia dei dati statici.
Falso
Vero
JJ II
J I
33
31. I membri statici di una classe sono disponibili solo dopoche il primo oggetto della classe viene istanziato.
Falso
Vero
JJ II
J I
34
32. Ogni variabile statica di una classe ed ogni metodo sta-tico di una classe esiste e puo essere utilizzato anche senessun oggetto di quella classe e stato istanziato.
Falso
Vero
JJ II
J I
35
33. L’ereditarieta e una forma di riutilizzo del software nellaquale nuove classi sono create a partire da classi esistentiereditando le loro proprieta ed i loro comportamenti edarricchendo questi ultimi con funzionalita che la nuovaclasse richiede.
Falso
Vero
JJ II
J I
36
34. In Java, una classe e derivata da una o piu superclassi.
Falso
Vero
JJ II
J I
37
35. Il vantaggio dell’ereditarieta consiste nella possibilita didefinire nella sottoclasse aggiunte o modifiche delle fun-zionalita ereditate dalla superclasse.
Falso
Vero
JJ II
J I
38
36. Ogni oggetto di una superclasse puo essere pensato comeun oggetto delle sottoclassi di quella superclasse.
Falso
Vero
JJ II
J I
39
37. L’insieme degli oggetti rappresentati da una sottoclas-se e normalmente piu grande dell’insieme degli oggettirappresentato da una qualunque superclasse di quellasottoclasse.
Falso
Vero
JJ II
J I
40
38. I costruttori di una superclasse sono ereditati dalle sot-toclassi di quella superclasse.
Falso
Vero
JJ II
J I
41
39. Un oggetto di una sottoclasse puo essere trattato comeun oggetto della sua superclasse.
Falso
Vero
JJ II
J I
42
40. Una conversione esplicita puo sempre convertire un ri-ferimento ad una superclasse in un riferimento ad unasottoclasse.
Falso
Vero
JJ II
J I
43
41. Se non vi e nessuna invocazione esplicita al costrut-tore della superclasse, Java automaticamente tenta diinvocare il costruttore di default della superclasse.
Falso
Vero
JJ II
J I
44
42. Per invocare esplicitamente il costruttore di default dellasuperclasse bisogna utilizzare l’istruzione super( );
Falso
Vero
JJ II
J I
45
43. Sebbene un oggetto di una sottoclasse sia un oggettodella superclasse, il tipo della sottoclasse e diverso daltipo della superclasse.
Falso
Vero
JJ II
J I
46
44. Assegnare un oggetto di una sottoclasse ad un riferi-mento della superclasse e, quindi, tentare di accederea membri della sola sottoclasse con il riferimento allasuperclasse, genera un errore di compilazione.
Falso
Vero
JJ II
J I
47
45. Quando usiamo l’ereditarieta per creare una nuova clas-se da una classe esistente, la nuova classe eredita soloi comportamenti della classe esistente: successivamen-te, aggiungiamo campi per adattare la classe alle nostrenecessita.
Falso
Vero
JJ II
J I
48
46. La compilazione produce tanti file .class quante sonole classi all’interno dell’unita di compilazione.
Falso
Vero
JJ II
J I
49
47. Ogni classe deve esplicitamente dichiarare il package dicui fa parte tramite l’istruzione corrispondente.
Falso
Vero
JJ II
J I
50
48. Esiste una corrispondenza biunivoca fra nome di un pac-kage e posizione nel file system delle classi del package.
Falso
Vero
JJ II
J I
51
49. L’esecuzione di una classe che appartiene ad certo packa-ge puo essere richiesta posizionandosi direttamente nelladirectory che contiene il file .class corrispondente.
Falso
Vero
JJ II
J I
52
50. La libreria java.lang va importata esplicitamente.
Falso
Vero
JJ II
J I
53
51. Per la distruzione di oggetti, Java mette a disposizioneoperatori ad-hoc.
Vero
Falso
JJ II
J I
54
52. Una classe puo essere dichiarata sottoclasse (extends)di due sottoclassi diverse (che non sono una sottoclassedell’altra) e in questo caso eredita attributi e metodi dientrambe.
Vero
Falso
JJ II
J I
55
53. Un metodo di una classe non puo essere contemporanea-mente sovraccaricato e sovrascritto.
Vero
Falso
JJ II
J I
56
54. Se Frazione e una classe con due attributi di tipo interonum e den, allora il seguente metodo e un costruttoresintatticamente corretto per la classe:public void Frazione(int n, int d) {
num = n;
den = d;
}
Vero
Falso
JJ II
J I
57
55. La classe Object e una superclasse di tutte le classi, lequali devono esplicitamente estendere la classe Object
mediante la clausola extends
Vero
Falso
JJ II
J I
58
56. Il seguente codice genera un errore di compilazionepublic class A { public A(int n) {} }
public class B extends A { }
Vero
Falso
JJ II
J I
59
57. Il seguente programma Java produce errori.class A {
int a; private void f(int b) { a = b; }
}
public class M {
public static void main(String[] args) {
A a = new A(); a.f(3);
}
}
Vero
Falso