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