diff --git a/src/ereditarieta/Influencer.java b/src/ereditarieta/Influencer.java index 3d74b96..c7fcc52 100644 --- a/src/ereditarieta/Influencer.java +++ b/src/ereditarieta/Influencer.java @@ -24,4 +24,8 @@ public class Influencer extends Persona{ System.out.println("Numero di follower: " + this.numeroFollower); System.out.println("Handle: " + this.handle); } + + public String getNumeroFollower() { + return this.numeroFollower; + } } \ No newline at end of file diff --git a/src/ereditarieta/Persona.java b/src/ereditarieta/Persona.java index 006fdc4..1cbfd8a 100644 --- a/src/ereditarieta/Persona.java +++ b/src/ereditarieta/Persona.java @@ -28,4 +28,8 @@ public class Persona { System.out.println("Sesso: " + this.sesso); System.out.println("Età: " + this.età); } + + public String getNome() { + return this.nome; + } } \ No newline at end of file diff --git a/src/ereditarieta/ereditarieta.java b/src/ereditarieta/ereditarieta.java index 2689f05..85158f9 100644 --- a/src/ereditarieta/ereditarieta.java +++ b/src/ereditarieta/ereditarieta.java @@ -24,6 +24,8 @@ public class ereditarieta { int scelta = -1; Persona persone[] = null; boolean opzione1 = false; + String nome; + Influencer influencerDaMostrare; do { System.out.println("Scegliere un'opzione:"); @@ -51,12 +53,35 @@ public class ereditarieta { if (opzione1) { MostraPersone(persone); } else { - System.out.println("Errore: è necessario aggiungere almeno una persona prima di mostrarle."); + System.out + .println("Errore: è necessario aggiungere almeno una persona prima di mostrarle."); } Pausa(); break; case 3: + if (opzione1) { + if (ProfessioneEsiste(persone, "Influencer")) { + System.out.print("Inserire il nome dell'influencer: "); + nome = sc.nextLine(); + if ((influencerDaMostrare = (Influencer) TrovaPersonaPerNomeeProfessione(persone, nome, + "Influencer")) != null) { + System.out.println("L'influencer di nome " + nome + " ha " + + influencerDaMostrare.getNumeroFollower() + " follower."); + } else { + System.out + .println("Errore: l'influencer di nome " + nome + " non è stato trovato."); + } + } else { + System.out + .println( + "Errore: è necessario aggiungere almeno un influencer prima di mostrare i suoi follower."); + } + } else { + System.out + .println( + "Errore: è necessario aggiungere almeno una persona prima di mostrare informazioni su di esse."); + } Pausa(); break; case 4: @@ -121,8 +146,7 @@ public class ereditarieta { if (p_persone == null) { ritorno = new Persona[numeroPersone]; - } - else { + } else { ritorno = Arrays.copyOf(p_persone, p_persone.length + numeroPersone, p_persone.getClass()); } @@ -207,4 +231,29 @@ public class ereditarieta { System.out.println(); } } + + static boolean ProfessioneEsiste(Persona[] p_persone, String p_professione) { + boolean ritorno = false; + + for (int i = 0; i < p_persone.length && !ritorno; i++) { + if (p_persone[i].getClass().getSimpleName().equals(p_professione)) { + ritorno = true; + } + } + return ritorno; + } + + static Persona TrovaPersonaPerNomeeProfessione(Persona[] p_persone, String p_nome, String p_professione) { + Persona ritorno = null; + boolean error = true; + + for (int i = 0; i < p_persone.length && error; i++) { + if (p_persone[i].getClass().getSimpleName().equals(p_professione) && p_persone[i].getNome().equals(p_nome)) { + error = false; + ritorno = p_persone[i]; + } + } + + return ritorno; + } }