Salve, devo realizzare una classe Java Squadra che modelli la posizione in classifica di una squadra di calcio partecipante ad un torneo.
Sul libro dove ho trovare questo esercizio riporta una possibile soluzione:
codice:public class Squadra implements Comparable{ protected String societa; protected int[] classifica; public Squadra(String societa){ this.societa=societa; classifica=new int[4]; } public void updClassifica(int punti){ classifica[0] +=punti; switch(punti){ case 3:classifica[1]++;break; case 1:classifica[2]++;break; case 0:classifica[3]++;break; } } @Override public int compareTo(Object altraSquadraObj) { if (altraSquadraObj ==null || this.getClass() !=altraSquadraObj.getClass()){ throw new RuntimeException("Metodo compareTo() inapplicabile!"); } int posSquadra=10000*classifica[0]+100*classifica[1]+classifica[2]; Squadra altraSquadra=(Squadra)altraSquadraObj; int posAltraSquadra=10000*altraSquadra.classifica[0]+100*altraSquadra.classifica[1]+ altraSquadra.classifica[2]; int result =0; if(posSquadra < posAltraSquadra){ result = 1; }else if(posSquadra > posAltraSquadra){ result = -1; }else{ result =societa.compareTo(altraSquadra.societa); } return result; } public String toString(){ return "Società: "+societa + " - punti "+ classifica[0] + " -v. " + classifica[1] + " - n. " + classifica[2] + " - p. " + classifica[3]; } }
Quello che non ho capito è :
1) Perchè la classe deve implementare l'interfaccia Comparable?
2)Perchè nell'istruzione "int posSquadra=10000*classifica[0]+100*classifica[1]+classifica[2];" sono presenti gli interi 10000 e 100?
tulipan