Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Logica di un Esercizio

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72

    Logica di un Esercizio

    Salve Ragazzi, ho un problema per quanto concerne la logica del programma di questo esercizio assegnatoci all'università.

    1.Un calciatore puµo essere descritto tramite nome, cognome, nazionalitµa, etµa e ruolo. Scrivere una classe Calciatore con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. Inoltre, de¯nire un metodo per modi¯care il ruolo ed un metodo che restituisce una stringa che descrive un calciatore.

    2.Un calciatore convocato nella squadra nazionale µe caratterizzato anche dal numero di presenze in nazionale, dal numero di goal segnati e dal numero di ammonizioni ricevute in partite della squadra nazionale. Scrivere una classe ConvocNazionale con gli opportuni costruttori ed i metodi che restituiscono i valori delle variabili istanza. In¯ne, de¯nire un metodo che restituisce una stringa che descrive un calciatore convocato nella squadra nazionale.

    3.Una squadra di calcio puµo essere caratterizzata dal nome, la cittµa, il nome del presidente, il nome dell'allenatore e l'elenco dei suoi calciatori. Scrivere una classe SquadraCalcio, il cui costruttore imposta il numero massimo dei calciatori di una squadra. Oltre ai metodi che restituiscono i valori delle variabili istanza, de¯nire i seguenti metodi: - un metodo che aggiunge un dato calciatore c ad una squadra; - un metodo che rimuove un dato calciatore c da una squadra; - un metodo che restituisce true se in una squadra esiste almeno un giocatore di una data nazionalitµa s, altrimenti il metodo restituisce false; - un metodo che restituisce l'elenco dei giocatori di una squadra che sono stati convocati in nazionale almeno k volte.

    Dunque per quanto riguarda la superClasse "Calciatore" e la sottoclasse "ConvocNazionale" non ci sono problemi. Ma quello che voglio capire è la sottoclasse "SquadraCalcio" come deve essere trattata? Ovvero, è chiaro che oltre alle variabili di istanza essa debba contenere un lista (Array) di giocatori. Questo ok, ma poi a sua volta ogni giocatore all'interno dell'Array deve essere caratterizzato da altrettante caratteristiche (variabili di istanza della sottoclasse ConvocNazionale e della superclasse Calciatore). Ecco, come fare quest'ultima cosa?

    In pratica se creo un oggetto nel Main:

    codice:
    SquadraCalcio Milan = new SquadraCalcio (tutte le variabili di istanza delle superclassi e della classe SquadraCalcio)
    All'interno di quelle Variabili di istanza ci sarà anche l'Array che contiene tutti i giocatori della squadra, i quali ognuno di essi avrà le varie variabili di istanza (nome,cognome,nazionalità...presenze in nazionale...ecc). Come se dovessi creare array dentro un altro array, e quindi array multidimensionali...
    Qualcuno può aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Logica di un Esercizio

    Originariamente inviato da visind
    Dunque per quanto riguarda la superClasse "Calciatore" e la sottoclasse "ConvocNazionale" non ci sono problemi.
    C'è solo una questione: tu hai un oggetto Calciatore e vuoi "convocarlo". L'oggetto non lo cambi! Devi istanziare un nuovo ConvocNazionale passando sostanzialmente tutti i dati del calciatore.

    Come nome avrebbe più senso CalciatoreInNazionale. Quindi concettualmente un CalciatoreInNazionale è-un Calciatore.

    Originariamente inviato da visind
    Ma quello che voglio capire è la sottoclasse "SquadraCalcio" come deve essere trattata?
    No. SquadraCalcio non deve estendere Calciatore e nemmeno ConvocNazionale. SquadraCalcio è un'altra classe che "modella" un "insieme" di giocatori. SquadraCalcio ha dei calciatori .... non è un Calciatore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    All'interno di quelle Variabili di istanza ci sarà anche l'Array che contiene tutti i giocatori della squadra, i quali ognuno di essi avrà le varie variabili di istanza (nome,cognome,nazionalità...presenze in nazionale...ecc). Come se dovessi creare array dentro un altro array, e quindi array multidimensionali...
    MMM....puoi fare anche cosi, ma non si tratta di Array multidimensionali ma di Array di oggetti, oggetti che rappresentano l'istanza di un'altra classe con i suoi attributi liste ecc.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72

    Re: Re: Logica di un Esercizio

    No. SquadraCalcio non deve estendere Calciatore e nemmeno ConvocNazionale. SquadraCalcio è un'altra classe che "modella" un "insieme" di giocatori. SquadraCalcio ha dei calciatori .... non è un Calciatore.
    Ahh, quindi è una classe a parte! Nel senso, è indipendente...non devo passargli i parametri delle precedenti due classi quindi?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Logica di un Esercizio

    Originariamente inviato da visind
    codice:
    SquadraCalcio Milan = new SquadraCalcio (tutte le variabili di istanza delle superclassi e della classe SquadraCalcio)
    Nel senso, è indipendente...non devo passargli i parametri delle precedenti due classi quindi?
    No! non la devi pensare così. Forse non hai fatto caso a quanto hai riportato tu stesso!

    Scrivere una classe SquadraCalcio, il cui costruttore imposta il numero massimo dei calciatori di una squadra

    un metodo che aggiunge un dato calciatore c ad una squadra; - un metodo che rimuove un dato calciatore c da una squadra
    Cosa ti fa pensare?

    Ad un costruttore SquadraCalcio(int numeroCalciatori), ad un metodo es. void aggiungiCalciatore(Calciatore c), ad un metodo es. void rimuoviCalciatore(int indice) e magari anche void rimuoviCalciatore(Calciatore c)

    Insomma ... rileggi il testo che hai postato! Ciò che hai indicato come "descrizione" delle entità diventano poi delle variabili di istanza, metti dei metodi getter/setter per le proprietà basilari e metti altri metodi come quelli che ho indicato per gestire la "collezione" dei calciatori interna a SquadraCalcio.

    Alla fine un esempio di uso potrebbe essere:

    codice:
    Calciatore c1 = new Calciatore("Mario", "Rossi", "italiana", ........);
    Calciatore c2 = new Calciatore("Giacomo", "Verdi", "italiana", ........);
    
    SquadraCalcio sq = new SquadraCalcio(11);
    sq.aggiungiCalciatore(c1);
    sq.aggiungiCalciatore(c2);
    .....
    boolean ita = sq.esisteNazionalita("italiana");
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.