I Compitino | II Compitino | III Compitino | Home
Esercizio 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
Verde
richiede un parametro allora il costruttore di un oggetto di
VerdeMare
deve esplicitamente chiamare il costruttore del padre, invocando
super
cui passare
il parametro gr
per inizializzare
il campo gradazione
del padre. Lo stesso parametro potrà
essere usato per inizializzare il campo gradazione
privato del figlio.
Dopo aver eseguito le istruzioni indicate si ottiene:VerdeMare(int gr) { super(gr); gradazione = gr; }
Verde matita = new Verde(3); matita.metodo_2(); verde matita.metodo_1(); 3 matita.metodo_3(); 1 matita.gradazione; 4 VerdeMare penna = new VerdeMare(2); penna.metodo_2(); verde penna.metodo_1(); 2 penna.metodo_3(); 2 VerdeMare stilo = new VerdeMare(1); stilo.metodo_3(); 3 penna.metodo_3(); 3 ((Verde)stilo).gradazione; 1
Si vedano le classi Verde.java e VerdeMAre.java per verificare l'output.
Test
alla riga 4,
contenente l'istruzione SubBase sb = new SubBase(10);
.
Non esiste un costruttore con parametri. Infatti la sottoclasse SubBase
non eredita costruttori e avrebbe solo il costruttore di default, ovvero il costruttore senza parametri.
Ma un oggetto di classe SubBase
dovrebbe comunque costruire il padre
chiamandone esplicitamente il costruttore.
Per rimediare occorre definire il costruttore della sottoclasse che accetta un parametro di tipo
int
, ad esempio public SubBase(int i) {}
, e che
lo passi al costruttore del padre.
SubBase(int i) { super(i); }
Si veda la classe Test.java.
La sequenza è ottenuta raddoppiando il numero precedente e sommando
l'intero 1
.
Quindi il passo base della funzione ricorsiva sarà
if (n == 0) return 1;
, mentre il passo induttivo
return 2 * f(n-1) + 1
.
Si veda la classe Test3.java.
( a ) ( ( ( b ) ( ( c ) ) ( d ) ) ):
stack: | ( | ( | ||||||||||||||||
( | ( | ( | ( | ( | ( | ( | ( | |||||||||||
( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | |||||||
( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | ( | |||
token: | ||||||||||||||||||
( | a | ) | ( | ( | ( | b | ) | ( | ( | c | ) | ) | ( | d | ) | ) | ) |
( ( a ) ( ( b ) )
stack: | ( | ( | |||||||
( | ( | ( | ( | ( | ( | ||||
( | ( | ( | ( | ( | ( | ( | ( | ( | |
token: | |||||||||
( | ( | a | ) | ( | ( | b | ( | ( |
StringTokenizer st = new StringTokenizer("questo č un esame"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
nextToken()
della classe StringTokenizer
riporta un oggetto di
classe String
. Si veda la classe Test5.java.
corrisponde all'espressione, in notazione infissa:1 5 + 2 * 3 1 + /
Mentre l'espressione, in notazione prefissa,(1 + 5) * 2 / (3 + 1)
corrisponde all'espressione, in notazione infissa:/ + 8 4 * 2 + 1 1
(8 + 4) / 2 * (1 + 1)
interface
.
abstract
.
abstract
non può essere istanziata
perchè contiene metodi astratti, ma può avere sottoclassi che li implementino.
partenza = "i seguaci"
Ciclo While
stringa arrivo = stringa vuota
partenza = "i seguaci"
Ciclo DoWhile
: stringa arrivo = i seguac
partenza = "imbuto"
Ciclo While
stringa arrivo = stringa vuota
partenza = "imbuto"
Ciclo DoWhile
: segnala l'errore
StringIndexOutOfBoundsException: String index out of range: 6 at java.lang.String.charAt(String.java:516) at DoWhile.main(DoWhile.java:12) Exception in thread "main" Process Exit...
public void push(Object o) { NodoStack t = new NodoStack(); t.dato = o; t.pros = cima; cima = t; }
Stack s = new Stack(); s.push(Integer(2)); s.pop(); s.push(Integer(5)); s.push(Integer(7));
public boolean hasMoreElements() { if (indice == cesto.length) return false; else return true; } public Object nextElement() { return (Object)cesto[indice++]; }
Esercizio 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10