Announcement

Collapse
No announcement yet.

Interfacce in Java - difficoltà esercizio elementare

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Interfacce in Java - difficoltà esercizio elementare

    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
    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());
        }    
    }
    la classe che si ricorda del max e del min
    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;
    }
    L'interfaccia chiamata InterfaceX (che fantasia)

    Code:
    public interface InterfaceX {
        double Area();
    }
    Classe Quadrato
    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;
    }
    Classe Rettangolo
    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;
    }

  • #2
    luca!! ma che è sta roba!
    | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio

    Comment

    Working...
    X

    Google Profile


    My name is Giovanni Di Grezia, but people call me xgiovio.

    Here is my homepage:.

    I'm a VFX Artist and Software Developer.

    Giovanni Di Grezia