Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Java ad oggetti e UML

Total questions: 47

Worksheet time: 39mins

Name
Class
Date
1.

Cosa permette di fare un costruttore?

a)

Costruire una classe

b)

Costruire un oggetto

c)

Costruire un programma

d)

Costruire un metodo

2.

Cosa NON posso fare se nella classe Student ho il seguente campo:


private int age;

a)

Accedere al campo age di un oggetto di tipo Student nel Main

b)

Accedere al campo age in un metodo della classe Student

c)

Accedere al campo age nel costruttore della classe Student

d)

Modificare il valore di age in un metodo della classe Student

3.

Cosa posso fare se nella classe Student ho il seguente campo:


protected int age;

a)

Accedere al campo age dall'interno di una classe figlia di Student

b)

Accedere al campo age dall'interno di una classe padre di Student

c)

Accedere al campo age dall'interno di una classe 'sorella' di Student (cioè che condivide  con Student la stessa classe padre)

d)

Nessuna delle altre tre risposte

4.

Perché è meglio che i campi di un oggetto siano privati?

4 lines
5.

Che differenza c'è tra una composizione ed un'aggregazione in un diagramma UML?

4 lines
6.

Quanti costruttori devo definire esplicitamente in una classe?

a)

Al massimo uno

b)

Obbligatoriamente uno ed uno soltanto

c)

Minimo uno

d)

Posso anche non definirne nessuno

7.

Quale delle seguenti affermazioni è vera riguardo a questo diagramma (clicca per ingrandire)?

a)

Ogni A è associato ad un B

b)

Ogni A è associato a più B

c)

Ogni A è associato ad al massimo un B

d)

Ogni A è associato ad uno o più B

8.

Quale delle seguenti affermazioni è vera riguardo a questo diagramma (clicca per ingrandire)?

a)

Ogni B è associato ad un A

b)

Ogni B è associato a più A

c)

Ogni B è associato ad al massimo un A

d)

Ogni B è associato ad uno o più A

9.

Quale delle seguenti affermazioni è vera riguardo a questo diagramma (clicca per ingrandire)?

a)

Ogni A contiene da zero a più B

b)

Ogni B contiene 3 A

c)

Ogni A contiene 3 B

d)

Nessuna delle altre tre risposte

10.

Quale delle seguenti affermazioni è vera riguardo a questo diagramma (clicca per ingrandire)?

a)

Ogni B è contenuto in un solo A

b)

Ogni B è contenuto in più A

c)

Un B può non essere contenuto in nessun A

d)

Un B può esistere anche da solo

11.

Cosa vuol dire se il tipo di ritorno di un metodo è void?

a)

Il metodo restituisce un valore di default

b)

Il metodo non restituisce nessun valore

c)

Il metodo restituisce un valore vuoto

d)

Il metodo restituisce un valore random

12.

Nella dichiarazione del metodo seguente:


public String getLabel(int code)

a)

Il tipo di ritorno è String

b)

Il tipo di ritorno è int

c)

Il tipo di ritorno è public

d)

Il tipo di ritorno è code

13.

Avendo questo diagramma (clicca per ingrandire) e se oggettoA è un oggetto della classe A e oggettoB è un oggetto della classe B, quale dei seguenti campi non esiste?

a)

oggettoA.b1

b)

oggettoA.a1

c)

oggettoB.a1

d)

oggettoB.b1

14.

Se nella classe A ho la seguente proprietà:


static int FIELD = 43;

quale istruzione tra le seguenti NON posso avere nel Main?

a)

System.out.println(A.FIELD);

b)

A.FIELD = 44;

c)

A a = new A();

d)

Posso avere ognuna delle altre tre istruzioni

15.

Quale fra le seguenti istruzioni rappresenta una corretta dichiarazione di un array?

a)

String verifiche[];

b)

String verifiche = new String();

c)

verifiche[10];

d)

String verifiche[] = new int[10];

16.

Supponendo di aver dichiarato l'array verifiche, per far riferimento ad un suo elemento si utilizza:

a)

verifiche

b)

verifiche()

c)

verifiche[i] dove i è un indice numerico

d)

verifiche(i) dove i è un indice numerico

17.

A che cosa serve l'operatore new?

a)

A creare una classe

b)

A creare un attributo

c)

A creare un metodo

d)

A creare un oggetto

18.

Qual è la corretta dichiarazione per specificare cha la classe A è sottoclasse della classe B?

a)

class A

b)

class A extends B

c)

class B extends A

d)

class A extend B

19.

Con quale strumento viene offerta la possibilità di creare nuove classi estendendo classi già esistenti?

a)

Incapsulamento

b)

Ereditarietà

c)

Polimorfismo

d)

Astrazione

20.

Se la class Cat estende Animal, quale istruzione tra le seguenti NON è valida?

a)

Cat x = new Cat();

b)

Animal X = new Animal();

c)

Cat x = new Animal();

d)

Animal x = new Cat();

21.

Se la classe Cat estende la classe Predator, quale delle seguenti affermazioni è vera?

a)

Un oggetto Cat ha accesso alle proprietà ed i metodi public e protected della classe Predator

b)

Un oggetto Predator ha accesso alle proprietà ed i metodi public e protected della classe Cat

c)

Un oggetto Cat ha accesso alle proprietà ed i metodi public, protected e private della classe Predator

d)

Un oggetto Predator ha accesso alle proprietà ed i metodi public, protected e private della classe Cat

22.

Cosa una classe non eredità dalla classe padre?

a)

Proprietà pubbliche

b)

Proprietà private

c)

Proprietà protected

d)

Metodi pubblici

23.

Qual'è l'istruzione corretta per richiamare il costruttore della classe padre dall'interno della classe figlia?

a)

superclass();

b)

super();

c)

this();

d)

extends();

24.

Quale delle seguenti istruzioni per dichiarare un loop NON è corretta?

a)

for ( int i = 99; i >= 0; i / 9 )

b)

for ( int i = 7; i <= 77; i += 7 )

c)

for ( int i = 20; i >= 2; - -i )

d)

for ( int i = 2; i <= 20; i = 2* i )

25.

Quale tra le seguenti indica la capacità che ha Java di selezionare una fra diverse implementazioni diverse dello stesso metodo in base al tipo reale di un oggetto (al di là del tipo della variabile in cui è contenuto)?

a)

Polimorfismo

b)

Incapsulamento

c)

Astrazione

d)

Ereditarietà

26.

Se nella classe A ho la seguente proprietà:


static final int FIELD = 43;

quale istruzione tra le seguenti NON posso avere nel Main?

a)

System.out.println(A.FIELD);

b)

A.FIELD = 44;

c)

A a = new A();

d)

Posso avere ognuna delle altre tre istruzioni

27.

Quando sono su un'app sul telefono

a)

L'app è il server

b)

L'app è il client

c)

Io sono il client

d)

Io sono il server

28.

Durante un secondo della sua attività, un server

a)

sicuramente ha risposto a molti client

b)

è possibile che non abbia risposto a nessun client

c)

sicuramente ha risposto ad almeno un client

d)

è possibile che non abbia inviato richieste a molti client

29.

Potrebbe essere utile avere una proprietà id in una classe per identificare i suoi oggetti?

a)

Sì

b)

Dipende

c)

No

d)

Solo se è public

30.

In UML con quale simbolo indico che qualcosa ha la visibilità public?

a)

+

b)

-

c)

#

d)

:

31.

In UML con quale simbolo indico che qualcosa ha la visibilità protected?

a)

+

b)

-

c)

#

d)

:

32.

In UML con quale simbolo indico che qualcosa ha la visibilità private?

a)

+

b)

-

c)

#

d)

:

33.

Sono un gestore telefonico. Ho modellato il mio mondo di interesse tramite questo diagramma UML (clicca per ingrandire). Quale affermazione tra le seguenti è vera?

a)

Ogni utente ha almeno un numero telefonico e ad ogni numero è associato un contratto.

b)

Ogni utente ha un numero telefonico e ad ogni numero è associato un contratto.

c)

Ogni utente ha al massimo un numero telefonico e ad ogni numero è associato un contratto.

d)

Ogni utente ha almeno un numero telefonico e ad ogni numero è associato almeno un contratto.

34.

Cos'è l'overriding in Java?

4 lines
35.

Quale affermazione è errata?

a)

Una classe può avere più classi figlie

b)

Una classe può avere più classi padre

c)

Una classe può avere più classi sibling (cioè figlie della stessa classe padre)

d)

le altre tre risposte sono tutte corrette

36.

Sto modellando il palinsesto di una rete televisiva. Ogni programma televisivo ha vari argomenti, che a loro volta sono descritti tramite delle parole chiave. Come modello un argomento?

a)

Classe Argomento

b)

Attributo di Attributo di ProgrammaTelevisivo

c)

Attributo di ParolaChiave

d)

Varie proprietà di Attributo di ProgrammaTelevisivo (una per ogni parola chiave)

37.

Elenca due vantaggi della programmazione ad oggetti rispetto alla programmazione non ad oggetti (dove ad es. tutto il codice può essere concentrato in un unico file Main con varie funzioni).

4 lines
38.

Sono un'agenzia immobiliare. Come rappresento il legame tra la classe Appartamento e la classe Cucina?

a)

Associazione

b)

Aggregazione

c)

Composizione

d)

Padre-figlio

39.

Sono un'agenzia immobiliare. Come rappresento il legame tra la classe Appartamento e la classe Contratto?

a)

Associazione

b)

Aggregazione

c)

Composizione

d)

Padre-figlio

40.

Sono un'agenzia immobiliare. Come rappresento il legame tra la classe FotoAnnuncio e la classe Annuncio?

a)

Associazione

b)

Aggregazione

c)

Composizione

d)

Padre-figlio

41.

Sono un'agenzia immobiliare. Come rappresento il legame tra la classe Immobile e Appartamento?

a)

Associazione

b)

Aggregazione

c)

Composizione

d)

Padre-figlio

42.

L'istruzione return in un metodo

a)

è obbligatoria

b)

è facoltativa

c)

è obbligatoria se il tipo di ritorno del metodo è diverso da void

d)

è obbligatoria se il tipo di ritorno del metodo è int

43.

Se la classe A è collegata in UML alla classe B mediante un'associazione uno-a-uno, cosa conterrà la classe A in Java?

a)

un attributo con l'oggetto B

b)

un attributo con l'array di oggetti B

c)

un metodo con l'oggetto B

d)

una classe figlio B

44.

Se la classe A è collegata in UML alla classe B mediante un'associazione uno-a-molti, cosa conterrà la classe A in Java?

a)

un attributo con l'oggetto B

b)

un attributo con l'array di oggetti B

c)

un metodo con l'oggetto B

d)

una classe figlio B

45.

In quale caso ho bisogno di un'associazione riflessiva (associazione di una classe con se stessa) in un diagramma delle classi UML?

4 lines
46.

Ho questo diagramma UML (clicca per ingrandire). Nel Main ho mauro (oggetto di tipo Studente) e paolo (oggetto di tipo Persona). Quale delle istruzioni seguenti NON è corretta?

a)

String nomeStudente = mauro.getNome();

b)

System.out.println(paolo.getNome());

c)

String matricola = mauro.getMatricola();

d)

System.out.println(paolo.getMatricola());

47.

Ho questo diagramma UML (clicca per ingrandire). Devi fare overriding del metodo getNome() in Studente, riferendoti al metodo getNome() nella classe Persona (la classe padre). Quale istruzione devi scrivere nel metodo getNome() di Studente in modo che il metodo restituisca la stringa con il nome preceduta dalla stringa "Ecco il nome dello studente: " ?

4 lines