// this // static vs. non-static, oggetto di invocazione, contesti static e non-static public class Esami { private int[] voti; private double[] crediti; private int numEsami; public Esami() { this(30); // chiama il costruttore Esami(int) } public Esami(int num) { voti = new int[num]; crediti = new double[num]; numEsami = 0; } public void aggiungiEsame(int voto, double crediti) { voti[numEsami] = voto; // this rappresenta un riferimento all'oggetto di invocazione this.crediti[numEsami] = crediti; numEsami++; } public int getNumEsami() { return numEsami; } public double getMediaPesata() { double sommaPesata = 0; double totCrediti = 0; for(int i=0; i 0) return sommaPesata/totCrediti; else return 0; } public double getTotCrediti() { double totCrediti = 0; for(int i=0; i max) max = voti[i]; } return max; } public int getVoto(int posiz) { return voti[posiz]; } public double getCrediti(int posiz) { return crediti[posiz]; } }