23/10/14 ES.1 - Soluzione (Libri.java, LibriCat.java) //file Libri.java public abstract class Libri { protected String titolo; protected int anno; protected int costo; public abstract boolean stessocosto(Object X); } //file LibriCat.java public class LibriCat extends Libri { public LibriCat(String t, int a, int c) { titolo=t; anno=a; costo=c; } public boolean stessocosto(Object X){ return (this.costo==((LibriCat)X).costo); } } Soluzione (Prova.java) //file Prova.java public class Prova { public static void main(String args[]) { LibriCat l1 = new LibriCat("Nome della Rosa",1986,20); LibriCat l2 = new LibriCat("Anna Karenina",1877,20); if (l1.stessocosto(l2)) System.out.println("I libri hanno lo stesso costo"); else System.out.println("I libri hanno costo diverso"); } } 1 23/10/14 ES.2 - Soluzione (Documenti.java, Libro.java) //file Documenti.java public interface Documenti{ public boolean uguale(Object x); } //file Libro.java public class Libro implements Documenti{ private String soggetto; private int costo; public Libro(String soggetto, int costo){ this.soggetto=soggetto; this.costo=costo; } public boolean uguale(Object x){ return (this.soggetto.equals(((Libro)x).soggetto)); } } Soluzione (Prova.java) public class Prova { public static void main(String args[]) { Libro l1=new Libro("storia", 35); Libro l2=new Libro("letteratura", 17); Libro l3=new Libro("storia", 10); if (l1.uguale(l2)) System.out.println("I libri 1 e 2 hanno lo stesso soggetto"); else System.out.println("I libri 1 e 2 hanno soggetto diverso"); if (l1.uguale(l3)) System.out.println("I libri 1 e 3 hanno lo stesso soggetto"); else System.out.println("I libri 1 e 3 hanno soggetto diverso"); } } 2 23/10/14 ES.3 - Soluzione (unico file Prova.java) interface FriendShip { public boolean isNearTo(Object x); } class StatusMessage implements FriendShip { private String username; private String city; private String text; //costruttore public StatusMessage(String username, String city, String text) { this.username = username; this.city = city; this.text = text; } Soluzione public boolean isNearTo(Object x) { StatusMessage msg = (StatusMessage)x; if (this.city.equalsIgnoreCase(msg.city)) return true; else return false; } public String toString() { return (this.username + " " + this.text + "("+this.city+")"); } } 3 23/10/14 Soluzione public class Prova { //unica classe pubblica con nome identico al file public static void main(String[] args) { StatusMessage status1 = new StatusMessage("Michele Rossi", "Bologna", "pensa che oggi non può andare peggio di ieri."); StatusMessage status2 = new StatusMessage("Aldo Verdi", "Milano", "si diverte un sacco!"); StatusMessage status3 = new StatusMessage("Mario Bianchi", "Bologna", "Mario Bianchi è felice!"); if (status1.isNearTo(status2)) {System.out.println(status2);System.out.println(status1);} if (status3.isNearTo(status1)) {System.out.println(status1);System.out.println(status3);} if (status3.isNearTo(status2)) {System.out.println(status2);System.out.println(status3);} } } 4