Andrea Z ha scritto:
vorrei inserire un controllo che impedisca di inserire 2 volte lo stesso numero in modo che sia univoco, oppure meglio creare una sequenza crescente di numeri in modo da non doverlo nemmeno scrivere.
Non hai mostrato Persona ma la classe Studente che hai scritto, non è tecnicamente sbagliata di per sé. Sarebbe migliorabile dal punto di vista delle denominazioni. Generalmente si evita di "inventarsi" nomi differenti per i parametri. Si usa tipicamente lo stesso nome del campo e poi nel "setter" si usa this.nome per fare riferimento al campo, dato che il parametro lo nasconde.
Insomma il modo "convenzionale" per esporre una proprietà è es.:
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
Abituati a questa forma, perché te la ritroverai e ti servirà in futuro.
Inoltre metodi come "reimposta" di per sé non servirebbero, anche se male non fanno.
Torniamo invece alla questione che hai posto, ovvero la "univocità" della matricola. Inserire un
controllo non è molto buono, anche perché allora dovresti tenere una "base dati" in memoria con tutte le matricole generate! Nell'ottica di un semplice esercizio sarebbe anche fattibile ma non è comunque la soluzione migliore.
Puoi certamente generare un numero progressivo. Il minimo che potresti fare è tenere
anche un campo
private static che contiene il numero "progressivo". Nel costruttore prendi il numero dal progressivo, lo assegni al campo e poi incrementi il progressivo. Essendo il progressivo static è "globale" rispetto a tutte le istanze.
Se dovesse essere fatto per un contesto multi-threading servirebbe anche altro (ma non è sicuramente il tuo caso).
Ah, se gestisci un progressivo del genere, chiaramente il setMatricola andrebbe tolto.