Esercizio 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
Automobile autoRossa = new Automobile(60.5);
Automobile autoBlu = new Automobile();
autoBlu.rifornire(30);
autoRossa.consumare(40.3);
autoRossa.livello()
riporta il valore 20.2
a meno di arrotondamentiautoBlu.livello()
riporta il valore 30.0
livello()
riporta un valore double
che può
essere passato come valore attuale al parametro formale quanto
pure di tipo double
autoRossa.livello()
riporta il valore 70.4
autoBlu.livello()
riporta il valore 50.2
non_si_sa(Automobile, double)
assegna un nuovo livello del serbatoio (ottenuto sottraendo dal livello
della macchina passata come parametro il quantitativo, pure passato come parametro)
alla macchina a cui viene lanciato il messaggio. Inoltre il metodo riassegna al
serbatoio della macchina passata come parametro un livello pari a quello iniziale.
Nell'istruzione autoRossa.non_si_sa(autoBlu, 10);
autoRossa
è l'oggetto cui viene lanciato il messaggio
e autoBlu
il parametro del metodo
autoRossa.livello()
riporta il valore 40.2
autoBlu.livello()
riporta il valore 50.2
Eseguendo orapublic void trasferisci (Automobile da, double ammontare) { this.rifornire(ammontare); da.consumare(ammontare); }
autoRossa.trasferisci(autoBlu, 10.5)
otteniamo:
50.7
dal metodo autoRossa.livello()
39.7
dal metodo autoBlu.livello()
public class AutomobileBis { private double serbatoio; public String colore; private String tipo; ... public AutomobileBis(double serbatoioIniziale, String tipo, String colore) { serbatoio = serbatoioIniziale; this.tipo = tipo; this.colore = colore; } }
public String colore;
private String colore;
allora per accedere
al dato del campo colore
dall'esterno della classe avremmo dovuto poter disporre
di un metodo pubblico, public String getColore()
.
public String getColore() { return this.colore; }
0
1
2
2
-5
e 5
0
e 5
rand.nextInt() % 8);
(int)(Math.random() * 11) + 4;
Rettangolo (int x, int y, Rettangolo unRettangolo) { this.x = x; this.y = y; this.amp = unRettangolo.amp; this.alt = unRettangolo.alt; }
sovraccaricamento
o overloading
del costruttore dato in precedenza.
1<=n && n<10
n<1 || 10<=n
formula = 4/3 pi_greca r3 + radice_quadrata(1+r2)
Le parentesi attorno alla frazionedouble final S_INIZIALE = 234.0; float final V_INIZIALE = 4.5; double final GRAV = 6.67E-11 double s; s = S_INIZIALE + V_INIZIALE * t + (1/2) * GRAV * Math.pow(t, 2);
1/2
non sono necessarie ma aiutano nella lettura.
Tenendo conto del significato della formula g
che indica la gravità
avrebbe potuto essere definita costante. Gli identificatori S_INIZIALE
e V_INIZIALE
rappresentano le variabili spazio e velocità
iniziali e perciò sono definite costanti come pure la costante di gravità.
Tutte le grandezze si devono pensare espresse nel sistema S.I. (Sistema Internazionale di misura)
riga
può essere rappresentata come nella tabella che segue
in cui sono evidenziati gli indici delle posizioni delle singole lettere:
L | ' | a | l | b | e | r | o | c | u | i | t | e | n | d | e | v | i | ... | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ... |
riga.length();
riporta 39
.riga.substring(6, 10).length();
riporta 4
.riga.substring(6, 10).toUpperCase();
riporta la stringa RO C
.riga.replace('b', 'p').substring(4, 12);
riporta la stringa pero cui
.String nuova = riga.substring(4, 17).replace('e', 'E');
inizializza la
stringa nuova
con la stringa bEro cui tEnd
.
nuova
è stata inizializzata a bEro cui tEnd
riga
è rimasta immutata
Le prime 4 istruzioni riportano un valore e NON alterano il valore iniziale della
variabile riga
, che non viene MAI modificata dalle chiamate dei vari metodi.
È solo l'ultima istruzione che assegna
alla variabile nuova
un valore computato tramite riga
, che
comunque rimane immutata. Per modificare la variabile riga
si sarebbe
dovuto effettuare un assegnamento esplicito. Ad esempio:
riga = riga.toUpperCase();
.
x = ++a * b-- + 1 5 1 3 2 4
x += parola.length()*2 + 5*b 6 1 2 3 5 4
x = parola.toUpperCase().length() * 2 6 1 2 3 4 5
autoBlu.rifornire(Math.abs(rand.nextInt()) % 60) 1 2 3 4 5 6 7
int a = 4, b = 8;
dopo aver eseguito il blocco:
a = a++ + --b; b += a - b;
11 11
int a = 4, b = 8;
dopo aver eseguito:
a = ++a + b--; b += a - b--;
13 13
Esercizio 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14