COGNOME NOME ESITO FONDAMENTI DI INFORMATICA – modulo B – 24 Giugno 2015 – (G1) 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. Una classe astratta Persona definisce una generica persona (con attributo nome per il nome, ed anno per l’anno di nascita ), il metodo costruttore per la classe, e il metodo astratto: public abstract String whoAmI(); Si definisca la sottoclasse Studente che deriva da Persona e che aggiunge un attributo intero matricola per indicare la matricola dello studente. Nella sottoclasse Studente, si definisca un metodo costruttore a tre argomenti (nome, anno nascita e matricola) e si definisca il metodo whoAmI()in modo da restituire la concatenazione del nome, dell’anno di nascita e della matricola come stringa. Si realizzi un metodo main in una classe Prova che crei due oggetti anna e mario istanza di Studente, il primo oggetto con attributi “Anna”, 1997, 12345 e il secondo oggetto con attributi “Mario”, 1997, 13344. Chiamando il metodo whoAmI() sui due oggetti anna e mario stampi sul file di uscita output.txt le stringhe risultanti. import java.io.FileOutputStream; import java.io.PrintStream; abstract class Persona { public String nome; public int anno; public Persona(String nome, int anno) { this.nome = nome; this.anno = anno; } public abstract String whoAmI(); } class Studente extends Persona { public int matricola; public Studente(String nome, int anno, int matricola) { super(nome, anno); this.matricola = matricola; } public String whoAmI() { return "Sono " + this.nome + " nato nel " + this.anno + " matricola n. " + this.matricola; } } public class Settembre162013G1 { public static void main (String [] args) { Studente st1 = new Studente("Anna", 1997, 13344); Studente st2 = new Studente("Mario", 1997, 12345); try { PrintStream output = new PrintStream(new FileOutputStream("output.txt")); output.println(st1.whoAmI()); output.println(st2.whoAmI()); } catch (Exception e) { System.out.println("Errore: " + e); System.exit(1); } } }