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.
VerdeMare(int gr) {
super(gr);
gradazione = gr;
}
Dopo aver eseguito le istruzioni indicate si ottiene:
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