Laboratorio di JAVA. Teoria + esercizi.
1. Che cosa intendiamo con il termine “istanza” di una classe? Riportare un esempio.
2. Che cos'è, che caratteristiche ha e come opera il costruttore di default di una generica classe?
3. Che cosa comporta a livello pratico la derivazione di una classe da un'altra?
4. Che tipo di ereditarietà è permessa in JAVA? Riportare un esempio.
5. Che cosa intendiamo con il termine “overriding”? Riportare un esempio.
6. Che utilizzo viene fatto del marcatore “final”? Riportare un esempio.
7. Elencare i due utilizzi principali della parola chiave “this”? Riportare un esempio.
8. Qual è la differenza tra il metodo “equals()” e l'operatore “==”?
9. Che cosa intendiamo con il termine “overloading”? Riportare un esempio.
10. A quale classe appartengono e come operano, se non ridefiniti, i metodi toString() ed hashCode?
11. Analizzare il seguente frammento di codice, rilevare, motivare e correggere eventuali errori.
class A{
int c;
public A(int c){this.c=c;}
public void f(int c){}
}
class B extends A{
int q;
public B(){
q=10;
super(10);
} }
12. Analizzare il seguente frammento di codice, rilevare, motivare e correggere eventuali errori.
class A{
int c;
public A(){}
public void f(int c){}
}
class B extends A{
int q;
public Object clone(){
return new B();
} }
public class Tester{
public static void main(String[] a){
B temp=new B();
B temp1=temp.clone();
} }
13. Analizzare il seguente frammento di codice, rilevare, motivare e correggere eventuali errori.
class A{
int c;
public A(){}
public void f(int c){}
}
class B extends A{
int q;
public B(){
super(q);
} }
14. Analizzare il seguente frammento di codice, rilevare, motivare e correggere eventuali errori.
class A{
int c;
public A(){}
public void f(int c){}
}
class B extends A{
int q;
public B(){this.g();}
public void g(){}
}
15. Analizzare il seguente frammento di codice, rilevare, motivare e correggere eventuali errori.
class A{
int c;
public A(){}
public void f(int c){}
}
class B extends A{
int q;
public B(){super.f();}
public void g(){}
}