A
Test 1
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
Test 2
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
java A
public class A {
public static void main(String g[]){
int a=2;
Int b=new Int(3);
f(a); f(b);
System.out.println(a+" "+b);
}
static void f(int k){ k++;}
static void f(Int v){ v.k++; }
}
class Int{
int k;
Int(int k){this.k=k;}
public String toString(){return ""+k;}
}
java B
public class B {
String a[10];
void initialize(){
for (int k=9;k>=0;--k) a[k]=""+k;
}
void stampa(int k){
System.out.println(a[k]);
}
B() {initialize(); stampa(0); }
public static void main(String a[]){
new B();
}
public static void main(String a){
new B();
}
}
Test 3
01
02
03
04
05
06
07
08
09
10
11
12
13
#include <iostream.h>
int k=2;
void f( int m ) { m=m*2; }
void g( int *m ) { m++; }
void h( int m[4] ) { m[0]--; }
void p(){cout<<k;}
int main(){
int k=5;
g(&k);h(&k);f(k);
cout << k;
p();
return 0;
}
A
Test 4
00
01
02
05
06
07
08
09
10
11
Test 5
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
java B
class B {
static int s=0;
B(int i){s=i;}
public static void main(String[] args) {
B b1=new B(3);
B b2=new B(3);
B b3=new B(1);
if (b1.equals(b2)) System.out.print("B"); else
System.out.print("A");
if (b1.s==b3.s) System.out.print("D"); else
System.out.print("C");
}
}
java D
class A {
A(int x) {System.out.print("T");}
A() {System.out.print("S");}
public void finalize() {System.out.print("U");}
}
public class D extends A {
D(int x) {System.out.print("F");}
D() {System.out.print("H");}
public void finalize() {System.out.print("G");}
public static void main(String args[]) {
A a=new D(3);
a = null;
System.gc();
System.runFinalization();
}
}
Test 6
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
package uno;
public class A {
void f(int k) {
System.out.print(k*3);
}
public static void main (String args[]){
Object z = new B();
if (z instanceof uno.A) ((A) z).f(1);
if (z instanceof uno.B) ((B) z).f(2);
}
}
class B extends A{
void f(int k) {
System.out.print(k*2);
}
}
A
Test 7
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
import java.util.*;
public class Cinque {
Collection z;
public Cinque(int k) {
if (k==0) z = new HashSet();
else z=new LinkedList();
}
public static void main(String[] args) {
Cinque a = new Cinque(1);
Cinque b = new Cinque(0);
for (int k=0;k<10;k++){
Integer z=new Integer(k%4);
a.z.add(z);
b.z.add(z);
}
System.out.println(a.z.size()+b.z.size());
}
}
Test 8
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
import java.util.*;
public class Cinque {
static Collection z;
public Cinque(int k) {
if (k==0) z = new HashSet();
else z=new LinkedList();
}
public static void main(String[] args) {
Cinque a = new Cinque(1);
Cinque b = new Cinque(0);
for (int k=0;k<10;k++){
Integer z=new Integer(k%4);
a.z.add(z);
b.z.add(z);
}
System.out.println(a.z.size()+b.z.size());
}
}
Test 9 – scrivere nel campo per l’output del test la sequenza risultante indicando T per
le affermazioni vere e F per quelle false. Tutte le affermazioni, ove non altrimenti
specificato, riguardano Java.
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
In Java non esistono le variabili globali
Java usa solo la heap e non lo stack
In C++ le variabili globali stanno in Heap
Una classe figlia può fare l’overloading di un metodo protetto della classe padre
Una classe figlia può fare overriding di un metodo protetto della classe padre
Se una classe è astratta è permesso usarla per effettuare ereditarietà multipla
Java non prevede l’ereditarietà multipla
Se una Collection è specializzata tramite una generic gli oggetti estratti dal relativo
iteratore non richiedono un cast.
A