Aiuto quiz java

Pubblicità

atomic xx

Nuovo Utente
Messaggi
60
Reazioni
1
Ciao a tutti, non capisco la soluzione di questi due quesiti di java, sapreste spiegarmi il motivo per cui sono giuste queste risposte? (il tasto che c'è non mostra niente sfortunatamente)
 

Allegati

  • 2016-02-28.webp
    2016-02-28.webp
    62.9 KB · Visualizzazioni: 37
  • 2016-02-28 (1).webp
    2016-02-28 (1).webp
    70 KB · Visualizzazioni: 33
Ultima modifica:
Per l'esercizio sulle classi
X = classe base (superclasse di Z)
Z = sottoclasse di X (Z extends X)

Il main costruisce un oggetto di classe Z
il costruttore dell'oggetto Z non chiama esplicitamente nessun costruttore della superclasse;
in tal caso viene automaticamente chiamato il costruttore vuoto X() della superclasse; quindi viene eseguito il codice per la costruzione di un oggetto di classe X e ciò viene fatto prima inizializzando l'attributo
Y b = new Y(); che causa la chiamata al costruttore Y() che stampa la prima Y
poi viene eseguito X() che stampa X
A questo punto si procede col resto della costruzione dell'oggetto di classe Z:
prima viene inizializzato l'attributo
Y y = new Y(); che, analogamente a prima stampa una Y (la seconda dell'output)
e poi viene chiamato il costruttore Z() che stampa Z

Scusa, ma dove sono finite le immagini?
 
Ultima modifica:
Riguardo il secondo quesito, vengono stampati 10 valori: n (da 0 a 10) "Yes " seguiti da 10-n "No ". Spiegazione: il valore di myString è inizialmente "Yes " e viene cambiato in "No " quando viene eseguito il metodo run(). Quest'ultimo viene eseguito in parallelo con il thread principale, ma non è definito quando. Quindi se run() viene eseguito prima che inizi il ciclo for allora la System.out.print stamperà tutti "No " mentre se il valore di myString viene cambiato (atomicamente) durante il ciclo si possono verificare situazioni intermedie e potrebbero essere stampati alcuni (anche tutti) "Yes ".
 
Pubblicità
Pubblicità
Indietro
Top