Cos'è l'OOP e quali sono i suoi principi fondamentali?
Quali sono le differenze tra l'OOP e la programmazione procedurale?
Cos'è una classe in OOP e quali sono i suoi componenti?
Qual è la differenza tra una classe e un oggetto?
Qual è il concetto di incapsulamento in OOP?
Cos'è l'ereditarietà in OOP e come funziona?
Qual è il concetto di polimorfismo in OOP?
Cos'è una relazione di composizione in OOP?
Qual è la differenza tra una relazione di composizione e una relazione di aggregazione in OOP?
Qual è il concetto di interfaccia in OOP e perché è importante?
Quali sono i vantaggi dell'OOP rispetto ad altri paradigmi di programmazione?
Quali sono le differenze tra un linguaggio di programmazione orientato agli oggetti e uno non orientato agli oggetti?
Qual è la differenza tra un'interfaccia e una classe astratta in OOP?
Una classe astratta è implementabile da una sottoclasse?
Come si utilizza il concetto di polimorfismo in OOP per scrivere codice più modulare e flessibile?
Come si può implementare una relazione di ereditarietà in OOP?
Cos'è un costruttore in OOP e quando viene chiamato?
Quali sono i tipi di accesso in OOP e qual è la loro importanza?
Cos'è il polimorfismo in OOP?
Qual è la differenza tra un metodo statico e un metodo di istanza in OOP?
Qual è la differenza tra un'istanza di una classe e una variabile locale?
Cos'è un'eccezione in OOP e come gestirla?
Come si utilizza l'ereditarietà multipla in OOP e quali sono le sue potenziali problematiche?
Come si utilizza la parola chiave "super" in OOP e in quali situazioni potrebbe essere necessario?
Come si utilizza la parola chiave "this" in OOP e in quali situazioni potrebbe essere necessario?
Qual è il concetto di binding in OOP e quali sono i suoi tipi?
Qual è il concetto di garbage collection in OOP e come funziona?