FONDAMENTI DI INFORMATICA (Prof. E. Lamma) – 2 Luglio 2014 PROVA PRATICA – LINGUAGGIO JAVA NOTA PER LA CONSEGNA DEL COMPITO Il compito deve essere stato compilato ed eseguito. E’ importante che tutti i file e le classi si chiamino come richiesto. Nel testo .java (come commento) va indicato il nome dello studente. Esercizio (da realizzare in un UNICO FILE .java) Nella soluzione, prediligere il maggior riutilizzo di codice e la maggiore protezione possibile. Si realizzi un componente interfaccia Comparabile in cui è definito il metodo: public boolean maggioreDi(Object x) che restituisce un booleano. Si realizzi poi una classe Bambino che implementa Comparabile, con attributo privato di tipo stringa nome (il nome del bambino) e un attributo privato di tipo intero eta (l’età del bambino). Tale classe, codifica un metodo costruttore a 2 argomenti. La classe ridefinisce inoltre il metodo toString() restituendo la stringa concatenazione dei due attributi. Il metodo maggioreDi(Object x) restituisce true se l’età dell’oggetto su cui si è invocato è maggiore dell’età dell’oggetto passato per riferimento (dopo l’operazione di casting). Altrimenti restituisce false. Si realizzi poi un metodo main in una classe Prova che: 1. Crei 2 oggetti b1 e b2 istanze della classe Bambino. b1 deve avere nome uguale “elena” e eta 13, e b2 nome uguale “luca” e eta 14; 2. Utilizzando il metodo maggioreDi(Object x) verifichi quale bambino è maggiore e lo stampi a video (tramite il metodo toString()). Esempio di output a video: Il bambino maggiore: luca 14 import java.io.*; interface Comparabile { public boolean maggioreDi(Object x); } class Bambino implements Comparabile { private int eta; private String nome; public Bambino (int n, String nome) { this.eta = n; this.nome = nome; } public boolean maggioreDi(Object x) { Bambino altro = (Bambino)x; if (eta>altro.eta) return true; else return false; } public String toString() { return(nome + " " + eta + "\n"); } } public class Prova { public static void main(String[] args) { Bambino b1 = new Bambino(13,”elena”);; Bambino b2 = new Bambino(14, “luca”); System.out.println("Il bambino maggiore:\n"); if (b1.maggioreDi(b1)) System.out.println(b1); else System.out.println(b2); } }