Si vuole realizzare un programma per la gestione di un noleggio di DVD. E' necessario rappresentare per ciascun DVD le seguenti informazioni: nome del film e data del noleggio (giorno, mese e anno). Per indicare che il DVD è dispobilile per il noleggio, giorno/mese/anno sono posti a zero
Scrivere una classe DVD per rappresentare le informazioni di
un DVD con la seguente interfaccia:
- DVD(String nome): costruttore avente come argomento il nome
del film. Il costruttore inizializza giorno/mese/anno di noleggio a
zero.
- DVD(String nome, int g, int m, int a) : costruttore con
quattro argomenti: nome film, e data del noleggio (g/m/a);
- String getNome( ): restituisce il nome del DVD;
- int getGiorno( ): restituisce il giorno in cui il DVD
è stato noleggiato (zero se disponibile);
- int getMese( ): restituisce il giorno in cui il DVD è
stato noleggiato (zero se disponibile);
- int getAnno( ): restituisce il giorno in cui il DVD è
stato noleggiato (zero se disponibile);
- void setData( int g, int m, int a): modifica la data g/m/a
del noleggio;
- boolean equals( Object x ): restituisce true se il DVD su cui
il metodo è invocato è uguale a x, e false altrimenti;
Programma di esempio: ProvaDVD.java
class ProvaDVD {
public static void main (String[] args) {
Statino a1 = new DVD("Kill Bill Vol. 1");
System.out.println(a1.getNome());
System.out.println(a1.getGiorno());
System.out.println(a1.getMese());
System.out.println(a1.getAnno());
a1.setData(16, 11, 2003);
System.out.println(a1.getAnno());
DVD a2 = new DVD("Jackie Brown", 31, 10, 2003);
if (a1.equals(a2)) System.out.println("a1 e a2 sono uguali");
else System.out.println("a1 e a2 sono diversi");
}
}
Viene fornita una classe VideotecaBase
che mette a disposizione un metodo DVD[] leggiVideoteca(String) che legge da un file
avente il nome passato come argomento un insieme di record
rappresentanti oggetti della classe DVD, e ritorna un
array di DVD opportunamente istanziato.
Programma di prova per Videoteca1
class Videoteca {
public static void main (String[] args) {
DVD[] vid1;
vid1 = VideotecaBase.leggiVideoteca("videoteca1.dat");
int noleggiati = Videoteca1.contaNoleggiati(vid1, 15, 11, 2003);
System.out.println("numero Noleggiati = " + noleggiati);
}
}
Programma di prova per Videoteca2
class Videoteca {
public static void main (String[] args) {
DVD[] vid1;
vid1 = VideotecaBase.leggiVideoteca("videoteca1.dat");
DVD vecchio = Videoteca2.noleggiatoPiuVecchio(vid1);
System.out.println("Noleggiato piu' vecchio = " + vecchio.getNome());
}
}