Maturità: Programmazione orientata agli oggetti

Ripasso della programmazione orientata agli oggetti per la maturità, con concetti chiave e definizioni fondamentali.

GabrieleNewt·56 flashkort·56 spørsmål·1 visninger
maturitàcomputer_scienceprogramming
0
Kjent
1 / 56
0
Lærer
Forside

Cosa sono le classi?

Trykk for å vende
Bakside

Le classi sono modelli che definiscono le proprietà e i comportamenti di un oggetto. Contengono attributi e metodi.

Trykk for å vende
Skjønner
Lærer fortsatt

Quiz(56 spørsmål)

Spørsmål 1 av 56

1. Cosa sono le interfacce in Java?

Begreper i dette studiesettet(56)

Fondamenti della Programmazione Orientata agli Oggetti(16)

Cosa sono le classi?

Le classi sono modelli che definiscono le proprietà e i comportamenti di un oggetto. Contengono attributi e metodi.

Definizione di oggetto

Un oggetto è un'istanza di una classe. Rappresenta un'entità con stato e comportamento.

Vero o falso: Un oggetto può appartenere a più classi.

Falso. Un oggetto è sempre un'istanza di una sola classe.

Confronta attributi e metodi.

Attributi: dati memorizzati. Metodi: funzioni che operano sugli attributi.

Cosa significa incapsulamento?

L'incapsulamento è il principio di nascondere i dettagli interni dell'oggetto, esponendo solo ciò che è necessario.

Esempio di un metodo

Classe: Auto. Metodo: accelerare(). Descrive il comportamento dell'auto nel contesto del suo funzionamento.

Cosa sono i costruttori?

I costruttori sono metodi speciali usati per creare oggetti e inizializzare i loro attributi.

Cosa rappresenta un'istanza?

Un'istanza è una realizzazione concreta di una classe, con i suoi valori specifici per gli attributi.

Vero o falso: Le classi possono ereditare metodi da altre classi.

Vero. Le classi possono estendere altre classi, ereditando metodi e attributi.

Fill the blank: L'oggetto è un _____ di una classe.

istanza

Cosa indica la visibilità privata in una classe?

Gli attributi o metodi privati non possono essere accessibili dall'esterno della classe.

Cause → Effetto: Incapsulamento → ...

... maggiore sicurezza e riduzione delle dipendenze nel codice.

Cosa fa un metodo setter?

Un metodo setter è usato per impostare il valore di un attributo privato di un oggetto.

Esempio di attributo in una classe.

Classe: Studente. Attributo: nome (stringa) e età (intero).

Cosa sono i metodi getter?

I metodi getter permettono di recuperare il valore di un attributo privato da un oggetto.

Confronta oggetti e classi.

Classi: modelli. Oggetti: istanze reali di quei modelli.

Ereditarietà e Polimorfismo(20)

Cos'è l'ereditarietà nella OOP?

Meccanismo che consente a una classe di ereditare attributi e metodi da un'altra classe.

Esempio di classe base e derivata.

Classe base: Animale. Classe derivata: Cane. Il Cane eredita proprietà dall'Animale.

Vero o falso: L'ereditarietà promuove la riusabilità del codice.

Vero. Consente di estendere classi esistenti senza ripetere codice.

Differences between overriding and overloading.

Overriding: modifica di un metodo nella classe derivata. Overloading: stesso nome metodo, parametri diversi.

Compila: La ________ è un tipo speciale di ereditarietà.

multipla.

Qual è il principio del polimorfismo?

Permette di trattare oggetti di classi diverse attraverso un'interfaccia comune.

Esempio di polimorfismo in Java.

Un metodo che accetta un oggetto di tipo 'Animale' può ricevere un 'Cane' o un 'Gatto'.

Vero o falso: Il polimorfismo si applica solo a metodi statici.

Falso. Si applica principalmente a metodi di istanza.

Come si realizza l'overriding?

Definire un metodo nella classe derivata con lo stesso nome e parametri della classe base.

Qual è il risultato dell'overriding?

Il metodo della classe derivata viene chiamato al posto di quello della classe base.

Compila: L'ereditarietà ________ permette di estendere più classi.

multipla.

Esempio di un'ereditarietà semplice.

Classe Base: Veicolo. Classe Derivata: Auto. L'Auto eredita dalla classe Veicolo.

Vero o falso: È possibile ereditare da più classi in C++.

Vero. C++ supporta l'ereditarietà multipla.

Come si implementa il polimorfismo in Python?

Utilizzando metodi con lo stesso nome in classi diverse, sfruttando i protocolli dinamici.

Differenza tra classe astratta e interfaccia.

Classe astratta: può avere metodi implementati. Interfaccia: solo dichiarazioni di metodi.

Compila: Il ________ è la capacità di uno stesso metodo di comportarsi in modi diversi.

polimorfismo.

Esempio di utilizzo del polimorfismo.

Funzione che accetta 'Animale' e chiama 'parla()'. 'Cane' e 'Gatto' avranno implementazioni diverse.

Vero o falso: Il polimorfismo riduce la complessità del codice.

Vero. Favorisce l'astrazione e la modularità.

Cos'è il metodo virtuale?

Un metodo che può essere sovrascritto in una classe derivata.

Qual è un vantaggio dell'ereditarietà?

Riusabilità del codice e facilità di manutenzione.

Interfacce e Classi Astratte(12)

Cosa sono le interfacce in Java?

Le interfacce sono contratti che dichiarano metodi senza fornire implementazione. Possono essere implementate da classi concrete.

Classi astratte vs interfacce

Le classi astratte possono avere metodi con implementazione. Le interfacce solo metodi senza implementazione.

Vero o falso: Le interfacce possono avere variabili.

Falso. Le interfacce possono avere solo costanti, non variabili istanza.

Scrivi un esempio di interfaccia.

interface Animale { void faiVerso(); }

Cosa permette l'implementazione di più interfacce?

Permette a una classe di ereditare comportamenti da più fonti, superando i limiti dell'ereditarietà singola.

Qual è il vantaggio principale delle classi astratte?

Consentono di fornire implementazioni comuni a classi derivate pur mantenendo l'astrazione.

Vero o falso: Una classe può estendere più classi astratte.

Falso. Una classe può estendere solo una classe astratta ma implementare più interfacce.

Come si dichiarano i metodi in un'interfaccia?

I metodi sono dichiarati senza corpo e sono implicitamente pubblici e astratti.

Cosa si ottiene usando interfacce?

Si promuove la decoupling, facilitando l'interoperabilità e la testabilità del codice.

Fai un esempio di classe astratta.

abstract class Veicolo { abstract void muovi(); }

Interfaccia vs classe astratta: quando usare?

Usa interfacce per comportamenti generali e classi astratte per implementazioni comuni.

Cosa succede se una classe astratta non implementa tutti i metodi?

La classe deve rimanere astratta e non può essere istanziata.

Eccezioni e Gestione degli Errori(8)

Che cosa sono le eccezioni?

Le eccezioni sono eventi anomali che si verificano durante l'esecuzione di un programma, interrompendo il flusso normale di esecuzione.

Vero o Falso: Un'eccezione non può essere gestita.

Falso. Le eccezioni possono essere gestite tramite costrutti come try-catch, permettendo al programma di continuare a funzionare.

Qual è la funzione di 'try'?

'try' è utilizzato per avvolgere il codice che può generare un'eccezione, permettendo di gestirla successivamente con 'catch'.

Completa: 'try { ... } catch (Exception e) { ... }' è una struttura per _____...

...gestire le eccezioni. Permette di eseguire codice di recupero in caso di errore.

Quando si usa 'finally'?

'finally' viene utilizzato per eseguire codice che deve sempre essere eseguito, sia che si verifichino eccezioni o meno.

Eccezioni Checked vs Unchecked: Confronta.

Checked: devono essere dichiarate o gestite. Unchecked: non devono essere dichiarate, derivano da errori di logica.

Esempio di gestione delle eccezioni.

try { int division = 10 / 0; } catch (ArithmeticException e) { System.out.println("Errore: divisione per zero."); }

Cause delle eccezioni comuni.

- Divisione per zero - Accesso a un indice non valido - File non trovato - Errori di tipo

Spørsmål i dette studiesettet(56)

1. Cosa sono le interfacce in Java?

A.Contratti che dichiarano metodi senza implementazione
B.Tipi di dati primitivi
C.Classi che non possono essere istanziate
D.Moduli per la gestione delle eccezioni

2. Qual è la definizione di ereditarietà nella programmazione orientata agli oggetti?

A.Meccanismo che consente a una classe di ereditare attributi e metodi da un'altra classe.
B.Tecnica per creare classi senza metodi.
C.Sistema per gestire le eccezioni in programmazione.
D.Insieme di metodi che non possono essere sovrascritti.

3. Cosa sono le classi in programmazione orientata agli oggetti?

A.Modelli che definiscono le proprietà e i comportamenti di un oggetto.
B.Metodi che operano su attributi.
C.Oggetti istanziati da altre classi.
D.Funzioni che restituiscono valori.

4. Che cosa accade se un'eccezione non viene gestita?

A.Il programma termina in modo anomalo.
B.L'eccezione viene ignorata senza conseguenze.
C.Il programma continua a funzionare normalmente.
D.Viene generato un avviso all'utente.

5. Qual è la principale differenza tra classi astratte e interfacce?

A.Le classi astratte possono avere metodi con implementazione
B.Le interfacce possono avere variabili di istanza
C.Le classi astratte non possono essere estese
D.Le interfacce non possono essere implementate

6. In un esempio di ereditarietà, quale delle seguenti è una classe derivata?

A.Cane
B.Animale
C.Veicolo
D.Oggetto

7. Qual è la definizione di oggetto?

A.Un tipo di dato primitivo.
B.Un'istanza di una classe.
C.Una funzione che modifica attributi.
D.Un metodo di una classe.

8. Quale dei seguenti costrutti è utilizzato per gestire eccezioni in Java?

A.try-catch
B.do-while
C.if-else
D.for-each

9. Vero o falso: Le interfacce possono avere variabili di istanza.

A.Vero
B.Falso
C.Solo in Java 8
D.Solo in Java 11

10. Vero o falso: L'ereditarietà consente di estendere classi esistenti senza ripetere codice.

A.Vero
B.Falso
C.Solo in C#
D.Solo in Java

11. Vero o falso: Un oggetto può appartenere a più classi.

A.Vero
B.Falso
C.Solo in linguaggi dinamici
D.Dipende dalla classe madre

12. In quale situazione è necessario utilizzare 'throws' in una dichiarazione di metodo?

A.Quando si lancia un'eccezione checked.
B.Quando si gestisce un'eccezione unchecked.
C.Quando non si utilizzano eccezioni nel metodo.
D.Quando si scrive un metodo senza parametri.

13. Quale delle seguenti è un esempio valido di interfaccia?

A.interface Animale { void faiVerso(); }
B.class Animale { void faiVerso(); }
C.abstract class Animale { void faiVerso(); }
D.interface Animale { public void faiVerso() {} }

14. Qual è la differenza principale tra overriding e overloading?

A.Overriding cambia un metodo esistente, overloading crea metodi con lo stesso nome ma parametri diversi.
B.Overriding richiede parametri diversi, overloading no.
C.Overriding è specifico per classi astratte, overloading per interfacce.
D.Non c'è differenza, sono sinonimi.

15. Qual è la differenza principale tra attributi e metodi?

A.Attributi sono dati, metodi sono funzioni.
B.Attributi sono funzioni, metodi sono dati.
C.Attributi e metodi sono la stessa cosa.
D.Nessuna differenza.

16. Quale delle seguenti eccezioni è considerata unchecked?

A.ArrayIndexOutOfBoundsException
B.IOException
C.SQLException
D.ClassNotFoundException

17. Cosa consente di ottenere l'implementazione di più interfacce in una classe?

A.Ereditarietà multipla
B.Comportamenti da più fonti
C.Classi astratte
D.Polimorfismo

18. Completa: La ________ è un tipo speciale di ereditarietà.

A.multipla
B.singola
C.lineare
D.inversa

19. Cosa significa incapsulamento in un oggetto?

A.Nascondere i dettagli interni e mostrare solo ciò che è necessario.
B.Creare un oggetto da una classe.
C.Definire nuovi metodi.
D.Ereditarietà tra classi.

20. Cosa succede all'interno di un blocco 'finally'?

A.Viene eseguito sempre, indipendentemente dalla presenza di eccezioni.
B.Viene eseguito solo se non ci sono eccezioni.
C.Viene eseguito solo in caso di eccezioni.
D.Non può contenere istruzioni di chiusura risorse.

21. Qual è il vantaggio principale delle classi astratte?

A.Forniscono implementazioni comuni
B.Possono essere istanziate direttamente
C.Non possono avere metodi astratti
D.Hanno solo variabili di istanza

22. Qual è il principio fondamentale del polimorfismo?

A.Permette di trattare oggetti di classi diverse attraverso un'interfaccia comune.
B.Consente di creare più istanze della stessa classe.
C.Riduce il numero di metodi in una classe.
D.Impedisce l'overriding dei metodi.

23. Quale di queste è un esempio di metodo?

A.Classe: Auto. Metodo: accelerare().
B.Classe: Auto. Attributo: velocità.
C.Classe: Auto. Attributo: colore.
D.Classe: Auto. Metodo: ruote.

24. Quale delle seguenti è una causa comune di eccezioni?

A.Divisione per zero
B.Stampa di un messaggio
C.Ciclo for
D.Dichiarazione di variabili

25. Vero o falso: Una classe può estendere più classi astratte.

A.Vero
B.Falso
C.Solo in situazioni particolari
D.Solo in Java 8

26. Quale dei seguenti è un esempio di polimorfismo in Java?

A.Un metodo che accetta un oggetto di tipo 'Animale' può ricevere sia un 'Cane' che un 'Gatto'.
B.Due classi che non hanno metodi comuni.
C.Un metodo statico che non può essere sovrascritto.
D.Una funzione che non accetta parametri.

27. Cosa sono i costruttori in programmazione orientata agli oggetti?

A.Metodi per creare oggetti e inizializzare attributi.
B.Funzioni per calcolare valori.
C.Attributi privati di una classe.
D.Metodi di accesso agli attributi.

28. Quale delle seguenti affermazioni è FALSA riguardo le eccezioni?

A.Le eccezioni devono essere sempre gestite.
B.Le eccezioni possono interrompere il flusso di un programma.
C.Le eccezioni possono essere lanciate dagli oggetti.
D.Le eccezioni possono essere di tipo checked o unchecked.

29. Come si dichiarano i metodi in un'interfaccia?

A.Senza corpo e implicitamente pubblici e astratti
B.Con corpo e privati
C.Con corpo e pubblici
D.Solo come metodi statici

30. Vero o falso: Il polimorfismo si applica solo ai metodi statici.

A.Falso
B.Vero
C.Solo in C++
D.Solo in Python

31. Cosa rappresenta un'istanza in questo contesto?

A.Un modello di classe.
B.Un metodo di classe.
C.Una realizzazione concreta di una classe.
D.Un attributo di una classe.

32. In che modo è possibile gestire una specifica eccezione in un blocco 'catch'?

A.Catturando l'eccezione specifica nel blocco 'catch'.
B.Utilizzando un blocco 'finally'.
C.Dichiarando l'eccezione nel metodo.
D.Eseguendo codice in un blocco 'try' senza ulteriori azioni.

33. Qual è uno dei benefici principali dell'uso delle interfacce?

A.Promuovono il decoupling del codice
B.Riducono la complessità
C.Aumentano la dimensione del codice
D.Impediscono l'ereditarietà

34. Come si realizza l'overriding in una classe derivata?

A.Definendo un metodo con lo stesso nome e parametri della classe base.
B.Modificando il nome del metodo.
C.Rimuovendo i metodi dalla classe base.
D.Creando un metodo statico.

35. Vero o falso: Le classi possono ereditare metodi e attributi da altre classi.

A.Vero
B.Falso
C.Solo in linguaggi non tipizzati
D.Solo in linguaggi funzionali

36. Fai un esempio di classe astratta.

A.abstract class Veicolo { abstract void muovi(); }
B.class Veicolo { void muovi(); }
C.interface Veicolo { void muovi(); }
D.abstract interface Veicolo { abstract void muovi(); }

37. Qual è il risultato dell'overriding?

A.Il metodo della classe derivata viene chiamato al posto di quello della classe base.
B.Nessun metodo viene eseguito.
C.Viene chiamato solo il metodo della classe base.
D.Il metodo diventa statico.

38. Completa la frase: L'oggetto è un _____ di una classe.

A.istanza
B.metodo
C.attributo
D.costruttore

39. Quando è preferibile usare un'interfaccia rispetto a una classe astratta?

A.Quando si desidera definire comportamenti generali
B.Quando si vogliono implementazioni comuni
C.Quando si desidera evitare metodi astratti
D.Quando si hanno variabili di istanza

40. Completa: L'ereditarietà ________ permette di estendere più classi.

A.multipla
B.singola
C.astratta
D.per la sicurezza

41. Cosa implica la visibilità privata in una classe?

A.Attributi e metodi non accessibili dall'esterno.
B.Attributi accessibili solo a classi derivate.
C.Metodi pubblici accessibili solo a metodi privati.
D.Nessuna restrizione di accesso.

42. Cosa succede se una classe astratta non implementa tutti i metodi dichiarati?

A.La classe deve rimanere astratta
B.La classe diventa concreta
C.I metodi diventano statici
D.Non è necessario dichiararla astratta

43. Qual è un esempio di ereditarietà semplice?

A.Classe Base: Veicolo. Classe Derivata: Auto.
B.Classe Base: Animale. Classe Derivata: Vegetale.
C.Classe Base: Computer. Classe Derivata: Programma.
D.Classe Base: Edificio. Classe Derivata: Finestra.

44. Causa → Effetto: Incapsulamento → ...?

A.Maggiore sicurezza e riduzione delle dipendenze nel codice.
B.Aumento della complessità.
C.Diminuzione delle prestazioni.
D.Accesso diretto agli attributi.

45. Vero o falso: È possibile ereditare da più classi in C++.

A.Vero
B.Falso
C.Solo in Java
D.Solo se non ci sono conflitti

46. Qual è la funzione di un metodo setter?

A.Impostare il valore di un attributo privato.
B.Recuperare il valore di un attributo.
C.Modificare la visibilità di un attributo.
D.Creare un nuovo oggetto.

47. Come si implementa il polimorfismo in Python?

A.Utilizzando metodi con lo stesso nome in classi diverse.
B.Creando classi senza metodi.
C.Definendo solo metodi statici.
D.Non è supportato in Python.

48. Quale di queste è un esempio di attributo in una classe?

A.Classe: Studente. Attributo: nome (stringa).
B.Classe: Studente. Metodo: iscriversi().
C.Classe: Studente. Metodo: studiare().
D.Classe: Studente. Costruttore: Studente().

49. Qual è la differenza principale tra una classe astratta e un'interfaccia?

A.Una classe astratta può avere metodi implementati, un'interfaccia solo dichiarazioni.
B.Un'interfaccia può avere metodi implementati, una classe astratta no.
C.Entrambi possono avere variabili di istanza.
D.Nessuna differenza, sono sinonimi.

50. Cosa fanno i metodi getter?

A.Recuperano il valore di un attributo privato.
B.Impostano il valore di un attributo privato.
C.Creano nuovi oggetti.
D.Aggiungono attributi a una classe.

51. Completa: Il ________ è la capacità di uno stesso metodo di comportarsi in modi diversi.

A.polimorfismo
B.override
C.ereditarietà
D.encapsulamento

52. Confronta oggetti e classi: quale affermazione è corretta?

A.Classi sono modelli; oggetti sono istanze reali di quei modelli.
B.Oggetti sono modelli; classi sono istanze.
C.Entrambi sono sinonimi.
D.Solo le classi possono avere metodi.

53. Fornisci un esempio pratico di utilizzo del polimorfismo.

A.Una funzione che accetta 'Animale' e chiama 'parla()'. 'Cane' e 'Gatto' avranno implementazioni diverse.
B.Un metodo che non restituisce valori.
C.Una classe che non ha metodi.
D.Un ciclo che itera su numeri.

54. Vero o falso: Il polimorfismo riduce la complessità del codice.

A.Vero
B.Falso
C.Solo in classi astratte
D.Solo in interfacce

55. Cos'è un metodo virtuale?

A.Un metodo che può essere sovrascritto in una classe derivata.
B.Un metodo che non può essere sovrascritto.
C.Un metodo che non ha implementazione.
D.Un metodo statico.

56. Qual è un vantaggio dell'ereditarietà?

A.Riusabilità del codice e facilità di manutenzione.
B.Aumento della complessità del codice.
C.Impedimento alla creazione di nuove classi.
D.Necessità di scrivere più codice.

Relaterte studiesett

Lag ditt eget studiesett

Last opp en PDF, lim inn notatene dine, eller beskriv et tema – AI genererer flashkort, quizer og mer på sekunder.