Quote Originariamente inviata da andbin Visualizza il messaggio
Avendo una classe Giudice i cui oggetti rappresentano i giudici, in Progetto si potrebbe tenere delle "mappe" del tipo:

private Map<Giudice,Punteggio> votiTecnica;
// ecc....

Pertanto, concettualmente, ogni progetto ha N punteggi per la tecnica, ciascuno associato ad un giudice. E così per le altre votazioni.


P.S. Se la mappa concreta utilizzata è HashMap, Giudice come "chiave" richiede la corretta implementazione di equals/hashCode.
Non so proprio utilizzare queste mappe... credo sia una cosa più avanzata rispetto a quel che sto facendo quindi proviamo a ritornare sul caso base.

L'esercizio mi chiede:

Si consideri la classe ProgettoScienzaPunteggio per giudicare un progetto scientifico. Questa classe userà la classe Punteggio descritta in precedenza. Gli attributi della nuova classe sono:

- nome del progetto;
- stringa identificativa del progetto;
- nome persona;
- un punteggio per abilità creativa (max 30)
- un punteggio per valore scientifico (max 30)
- un punteggio per completezza (max 30)
- un punteggio per chiarezza 15 (max 10)

La classe avrà metodi:
- ricevere numero di giudici
- ricevere tutti punteggi per un particolare progetto
- restituire il totale dei punteggi per un particolare progetto
allora la classe Punteggio è questa:

codice:
import java.util.Scanner;


public class Punteggio {
 
	private String descrizione;
	private int punteggiomax;
	private int punteggio;
	
	public void setPunteggio(){
		Scanner tastiera = new Scanner(System.in);
		
		System.out.println("Inserisci punteggio. Max "+ punteggiomax);
		punteggio = tastiera.nextInt();
		
		if (punteggio > punteggiomax){
			System.out.println("Errore! Il punteggio non può superare quello massimo!");
			punteggio = 0;
		}
	}
	
	public void setPunteggioMax(int num){
		punteggiomax = num;
	}
	
	public int getPunteggio(){
		return punteggio;
	}
	
	public void stampaPunteggio(){
		System.out.println("Il punteggio è: " + punteggio);
	}
}
mentre la classe Progetto che ho pensato è questa:

codice:
import java.util.Scanner;


public class ProgettoDemo {
	
	private static String nomeprogetto;
	private static String idprogetto;
	private static String nomestudente;
	
		
	public void assegnaVoti(){
		Scanner tastiera = new Scanner(System.in);
		Punteggio creativita = new Punteggio();
		creativita.setPunteggioMax(30);
		creativita.setPunteggio();
		
		Punteggio valorescientifico = new Punteggio();
		valorescientifico.setPunteggioMax(30);
		valorescientifico.setPunteggio();
		
		Punteggio completezza = new Punteggio();
		completezza.setPunteggioMax(15);
		completezza.setPunteggio();
		
		Punteggio tecnica = new Punteggio();
		tecnica.setPunteggioMax(15);
		tecnica.setPunteggio();
		
		Punteggio chiarezza = new Punteggio();
		chiarezza.setPunteggioMax(10);
		chiarezza.setPunteggio();
	}
	
	public void datiProgetto(){
		Scanner tastiera = new Scanner(System.in);
		System.out.println("Inserisci nome progetto:");
		nomeprogetto = tastiera.next();
		
		System.out.println("Inserisci id progetto:");
		idprogetto = tastiera.next();
		
		System.out.println("Inserisci nome studente:");
		nomestudente = tastiera.next();
		
	}


}
Non so se invece del metodo datiProgetto() conviene fare una classe a parte per gestire anche l'aspetto dei giudici considerato che nomeprogetto, idprogetto e nomestudente dovrebbero non variare tra le varie istanze di voto.