Sto seguendo la guida di Claudio De Sio su Java, in questa guida lui parla continuamente delle regole dell'OO e di come fare per non violare tali regole.
A metà libro viene proposto un esercizio (senza che sia fornita soluzione) per capire da soli se si sono veramente apprese le cose scritte fino a quel punto, vi posto il testo dell'esercizio:
Il lettore si limiti a simulare la seguente situazione:
una rubrica contiene informazioni (nome, indirizzo, numero telefonico) su un certo
numero di persone (per esempio 5), prestabilito (le informazioni sono preintrodotte nel
metodo main()). L’utente dovrà fornire all’applicazione un nome da riga di comando e
l’applicazione dovrà restituire le informazioni relative alla persona. Se il nome non è
fornito, o se il nome immesso non corrisponde al nome di una persona preintrodotta
dall’applicazione, deve essere restituito un messaggio significativo.
Il lettore non ha altri vincoli.
E vi posto anche come io l'ho svolto:
Rubrica.java:
Contatti.java:codice:public class Rubrica{ public static void main(String args[]){ int trovato=0; String nome = args[0]; Contatti c[] ={new Contatti("Aldo", "Rossi", 333), new Contatti("Giovanni", "Verdi", 444), new Contatti("Giacomo", "Bianchi", 555), }; for(int i=0; i<=2; i++){ if(nome.equals(c[i].getNome())){ System.out.println(c[i].getNome()); System.out.println(c[i].getCognome()); System.out.println(c[i].getNumero()); trovato = 1; break; } else{ trovato = 0; } } if(trovato==0) System.out.println("Non è stata trovata nessuna corrispondenza"); } }
L'applicazione l'ho provata e funziona, piuttosto quello che vorrei sapere io è se viola qualche regola della programmazione orientata ad oggetti, poiché in questo libro si parla veramente tanto della teoria ad oggetti adesso ho paura di sbagliare, poiché è da anni che utilizzo la programmazione procedurale e non so se l'utilizzo del ciclo for e delle condizioni sia dato da questo o esistono metodi alternativi che fanno l'uso dell'OO.codice:public class Contatti{ private String nome, cognome; private int numero; public Contatti(String nome, String cognome, int numero){ setNome(nome); setCognome(cognome); setNumero(numero); } public void setNome(String nome){ this.nome = nome; } public void setCognome(String cognome){ this.cognome = cognome; } public void setNumero(int numero){ this.numero = numero; } public String getNome(){ return nome; } public String getCognome(){ return cognome; } public int getNumero(){ return numero; } }
E' corretto così o esistono altri modi più appropriati?


Rispondi quotando
tatto.
