PDA

View Full Version : quesiti java


DarkSiDE
12-02-2006, 21:39
-- Avendo una classe fatta in questo modo:
public class StaticTest {
public void testMethod() {
System.out.println("Hello world!");
}
public static void main(String[] args) {
testMethod();
}
}
il compilatore genera un errore. Perché? Qual è il codice corretto?


-- Avendo una classe fatta in questo modo:
public class ExceptionTest {
public void testMethod() {
System.out.println("Hello world!");
}
public void testException() {
String s=null;
for (int i=0; i<100; i++) {
testMethod();
}
String p=(String)s.subs t ring(0).getBytes();
}

l'esecuzione genererà una NullPointerException. Una volta sistemata
la NullPointerException, verrà generata una ClassCastException sulla
stessa riga. Scrivere il codice che pone riparo ad entrambe le
eccezioni.


-- Avendo una classe fatta in questo modo:
public class OverrideTest {
public OverrideTest() {
/ / nothing interesting here...
}
public void OverrideTest() {
System.out.println("I'm a test");
}
public boolean OverrideTest() {
System.out.println("I'm another test");
return true;
}
}

il compilatore genera un errore. Perché è sbagliato l'overload fatto in
questo modo? Perché è sconsigliabile usare questi nomi? Proporre
un'implementa zione corretta.


grazie :cry:

FedeX_65246X
12-02-2006, 22:15
...


Non hai un libro/appunti su cui studiare?
Usali...

rdefalco
12-02-2006, 22:51
-- Avendo una classe fatta in questo modo:
public class StaticTest {
public void testMethod() {
System.out.println("Hello world!");
}
public static void main(String[] args) {
testMethod();
}
}
il compilatore genera un errore. Perché? Qual è il codice corretto?


Presumo perché tu richiami il metodo testMethod che NON è statico. Cioè può essere richiamato solo dopo aver istanziato la classe. Dovresti mettere "public static void testMethod()"

... :mbe: ma stavo rispondendo al resto quando MI E' SEMBRATO DI NOTARE che si tratta di esercizi... studiare no, eh?

cj++
13-02-2006, 09:13
-- Avendo una classe fatta in questo modo:
public class OverrideTest {
public OverrideTest() {
/ / nothing interesting here...
}
public void OverrideTest() {
System.out.println("I'm a test");
}
public boolean OverrideTest() {
System.out.println("I'm another test");
return true;
}
}

il compilatore genera un errore. Perché è sbagliato l'overload fatto in
questo modo? Perché è sconsigliabile usare questi nomi? Proporre
un'implementa zione corretta.

l'overload è sbagliato perche il solo valore di ritorno non è sufficiente.
Devi cambiare numero/tipo di parametri.

E' sconsigliabile perche hanno lo stesso nome della classe (e quindi del costruttore)