Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561

    Problemi con la realizzazione e la comprensione di una classe Java

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Implementare Comparable da' ad esempio la possibilità di utilizzare il metodo sort della classe Collections,che utilizza il metodo compareTo(di cui Squadra fa l'override) per capire se un qualsiasi oggetto di una classe è maggiore,minore o uguale di un altro.
    Nel tuo caso passando al metodo sort una lista di squadre,esse saranno ordinate in base al criterio specificato nel compareTo.

    Quei numeri da quel che vedo servono a definire la posizione di una squadra in base a punti,vittorie e pareggi. Questi valori sono moltiplicati per numeri diversi per dare la precedenza a chi ha più punti,poi chi ha più vittorie e poi guardando i pareggi.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Quote Originariamente inviata da tulipan Visualizza il messaggio
    devo realizzare una classe Java Squadra che modelli la posizione in classifica di una squadra
    Prima di iniziare, pensa bene al modello ad oggetti.
    Una classe "Squadra" non dovrebbe modellare una classifica, ma una squadra, appunto.
    Una classifica può essere modellata da una classe "Classifica" o "Tabellone" o qualcosa del genere, che gestisca un insieme di squadre (cioè un insieme di istanze della classe Squadra). Ciascuna squadra, quindi, non dovrebbe sapere nulla delle altre, essendo un'unità atomica.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.