Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2005-2006.

QUESTIONARIO di verifica non fiscale

Lunedi' 7 novembre 2005



Risposte e spiegazioni...



Attributi di classe e di istanza

Sia MyClass una classe che ha un attributo di instanza aIst e un attributo di classe aCls.
Siano o1 e o2 due oggetti istanze della classe MyClass.

Per ogni affermazione dire se e' vera o falsa:

Spiegazione: per definizione di "attributo di istanza" e "attributo di classe".

Parole chiave in Java

Sappiamo che seguenti parole chiave possono precedere il nome di un attributo in Java:

  1. static
  2. final
  3. private
  4. protected
  5. public

Accoppiare ciascuna parola chiave sopra citata al suo significato, scelto tra i seguenti:

Spiegazione: per definizione della sintassi Java.



Classi e sotto-classi

Sia MyClass una classe e SubClass una sua sotto-classe. Sia myvar una variabile dichiarata di classe MyClass e sia subvar una variabile dichiarata di classe SubClass.

Per ogni affermazione dire se e' vera o falsa:

Spiegazione:
Chiaramente in una variabile dichiarata di classe C posso sempre mettere oggetti della stessa classe C.
Posso anche metterci oggetti di una sotto-classe di C perche' tali oggetti possiedono tutte le caratteristiche della classe C (piu' altre proprie della sotto-classe).
Viceversa non posso metterci oggetti di una super-classe di C perche' ad essi mancano alcune caratteristiche (quelle aggiunte da C rispetto alla sua super-classe).



Classi astratte

Sia AbsClass una classe astratta.

Per ogni affermazione dire se e' vera o falsa:

Spiegazione:
Una classe e' astratta se non implementa alcuni metodi. Ne puo' implementare alcuni si' e altri no. I metodi non implementati in una classe astratta sono implementati nelle sue sotto-classi.
Una classe astratta serve per trattare in modo uniforme oggetti appartenenti alle sue sotto-classi, percio' una classe astratta AbsClass non ha senso senza sotto-classi. Tipicamente dichiaro una variabile di classe AbsClass e ci metto dentro oggetti di una qualunque delle sotto-classi. Il fatto che manchi in AbdClass l'implementazione di alcuni metodi non e' un problema, perche' Java prende sempre l'implementazione del metodo nella classe a cui appartiene l'oggetto, non nella classe a cui appartiene la variabile (questo si chiama "binding dinamico").