Primi esercizi con interfacce: si hanno due figure geometriche quali quadrato e rettangolo,di entrambe le figure si vuole calcolare quello con area maggiore ed area minore. Riutilizziamo il codice centrale per calcolare Area Maggiore e Area Minore dei vari quadrati e rettangoli inseriti.
Classe per testare il programma
la classe che si ricorda del max e del min
L'interfaccia chiamata InterfaceX (che fantasia)
Classe Quadrato
Classe Rettangolo
Classe per testare il programma
Code:
public class index {
public static void main(String[] args){
MaxAndMin quadrato = new MaxAndMin();
quadrato.addObject(new Quadrato(10.0));
quadrato.addObject(new Quadrato(20.0));
quadrato.addObject(new Quadrato(15.0));
Quadrato qmax = (Quadrato) quadrato.getMax();
System.out.println("Il quadrato con area maggiore e' il quadroto con lato "+qmax.getLato());
Quadrato qmin = (Quadrato) quadrato.getMin();
System.out.println("Il quadrato con area minore e' il quadroto con lato "+qmin.getLato());
MaxAndMin rettangolo = new MaxAndMin();
rettangolo.addObject(new Rettangolo(10,1));
rettangolo.addObject(new Rettangolo(20.0,1));
rettangolo.addObject(new Rettangolo(15.0,1));
Rettangolo rmax = (Rettangolo) rettangolo.getMax();
System.out.println("Il rettangolo con area maggiore e' il rettangolo con altezza "+rmax.getAltezza()+" e con lunghezza "+rmax.getLunghezza());
Rettangolo rmin = (Rettangolo) rettangolo.getMin();
System.out.println("Il rettangolo con area minore e' il rettangolo con altezza "+rmin.getAltezza()+" e con lunghezza "+rmin.getLunghezza());
}
}
Code:
public class MaxAndMin {
public MaxAndMin(){
max = null;
min = null;
}
public Object getMax(){
return max;
}
public Object getMin(){
return min;
}
public void addObject(InterfaceX anObject){
if((max == null ) || (anObject.Area() > max.Area())){
max = anObject;
}
if(min == null || anObject.Area() < min.Area()){
min = anObject;
}
}
private InterfaceX max;
private InterfaceX min;
}
Code:
public interface InterfaceX {
double Area();
}
Code:
public class Quadrato implements InterfaceX{
public Quadrato(double lato){
this.lato = lato;
}
@Override
public double Area() {
return lato*lato;
}
public double getLato(){
return lato;
}
private double lato;
}
Code:
public class Rettangolo implements InterfaceX{
public Rettangolo(double altezza,double lunghezza){
this.altezza = altezza;
this.lunghezza = lunghezza;
}
@Override
public double Area() {
return (altezza*lunghezza)/2;
}
public double getAltezza(){
return altezza;
}
public double getLunghezza(){
return lunghezza;
}
private double altezza;
private double lunghezza;
}
Comment