Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono...

59
JJ II J I GOCCE DI JAVA Capitolo 5 Domande vero-falso Selezionando una risposta, il bottone corrispondente diventa verde se la risposta ` e giusta, altrimenti diventa rosso.

Transcript of Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono...

Page 1: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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.

Page 3: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 4: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 5: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 6: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 7: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 8: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

8

6. Tutti gli oggetti Java sono passati per valore.

Falso

Vero

Page 9: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 10: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 11: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

11

9. Le parole chiave public e private sono nomi di variabilid’istanza.

Falso

Vero

Page 12: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 13: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

13

11. Normalmente si hanno diversi costruttori per un classe:cio puo essere ottenuto attraverso la sovrascrittura deicostruttori.

Falso

Vero

Page 14: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 15: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 16: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 17: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 18: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 19: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 20: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 21: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 22: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 23: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 24: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

24

22. Variabili d’istanza pubbliche possono essere manipolatesolo dai metodi della classe.

Falso

Vero

Page 25: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

25

23. I metodi set sono anche detti metodi mutatori (in quan-to tipicamente cambiano un valore).

Falso

Vero

Page 26: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 27: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 28: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 29: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 30: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 31: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

31

29. Ogni oggetto di una classe ha la propria copia di tuttele variabili d’istanza della classe.

Falso

Vero

Page 32: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 33: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 34: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 35: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 36: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

36

34. In Java, una classe e derivata da una o piu superclassi.

Falso

Vero

Page 37: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 38: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

38

36. Ogni oggetto di una superclasse puo essere pensato comeun oggetto delle sottoclassi di quella superclasse.

Falso

Vero

Page 39: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 40: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

40

38. I costruttori di una superclasse sono ereditati dalle sot-toclassi di quella superclasse.

Falso

Vero

Page 41: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

41

39. Un oggetto di una sottoclasse puo essere trattato comeun oggetto della sua superclasse.

Falso

Vero

Page 42: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 43: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 44: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

44

42. Per invocare esplicitamente il costruttore di default dellasuperclasse bisogna utilizzare l’istruzione super( );

Falso

Vero

Page 45: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 46: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 47: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 48: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

48

46. La compilazione produce tanti file .class quante sonole classi all’interno dell’unita di compilazione.

Falso

Vero

Page 49: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

49

47. Ogni classe deve esplicitamente dichiarare il package dicui fa parte tramite l’istruzione corrispondente.

Falso

Vero

Page 50: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 51: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 52: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

52

50. La libreria java.lang va importata esplicitamente.

Falso

Vero

Page 53: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

53

51. Per la distruzione di oggetti, Java mette a disposizioneoperatori ad-hoc.

Vero

Falso

Page 54: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 55: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

JJ II

J I

55

53. Un metodo di una classe non puo essere contemporanea-mente sovraccaricato e sovrascritto.

Vero

Falso

Page 56: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 57: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 58: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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

Page 59: Capitolo 533. L’ereditariet a e una forma di riutilizzo del software nella quale nuove classi sono create a partire da classi esistenti ereditando le loro propriet a ed i loro comportamenti

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