Esercitazione in classe su Cassi, oggetti e metodi.

Ci viene chiesto di realizzare un programma per calcolare l'area di una figura geometrica a scelta tra Triangolo, Quadrato oppure Rettangolo.

Il programma viene realizzato con due classi: la principale che si occupa di interagire con l'utente si chiama FigureDicembre l'altra che si dedica alla gestione dei valori, dei calcoli e della stampa dei risultati si chiama Aree.

Il programmatore crea un pacchetto FigureDicembre  in cui inserisce le seguenti variabili:

double b=0, h=0; // necessarie per effettuare i calcoli
char lettera=' '; // per gestire la fiigura geometrica

Nello sviluppo si pensa di chiedere solo le informazioni necessarie all'utente, senza perdere tempo e spazio in memoria.

Pertanto nello sviluppo del programma si chiede di quale figura geometrica vuole calcolare l'area.

Perchè il quadrato non ha bisogno della misura dellatezza (è = alla base)

Si pensa poi che per calcolare l'area del triangolo sia sufficiente dividere per due base per altezza.

Nel programma c'è una riga che presenta una novità    lettera = rigaletta.charAt(0);

Attraverso questo metodo è possibile passare una lettera alla variabile char, 0 indica che si passa la prima lettera.

Adesso passiamo a vedere la codifica.

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class FigureDicembre {
    public static void main(String[ ] args) {
        double b=0, h=0;
        char lettera=' ';
        //creo oggetto
        Aree figura;
        figura= new Aree();
        InputStreamReader in = new InputStreamReader (System.in);
        BufferedReader key = new BufferedReader(in);
        System.out.println("Inserisci la misura della base in cm: " );

System.out.println("PROGRAMMA FIGURE GEOMETRICHE ");
                                                    System.out.println("Inserire: ");
                                                    System.out.println("t per l'area di un triangolo");
                                                    System.out.println("r per l'area di un rettangolo");
                                                    System.out.println("q per l'area di un quadrato");
                              try
              { String rigaletta=key.readLine();
                lettera = rigaletta.charAt(0);
                                                      }
                           catch (Exception e)
                {System.out.println("Dati non corretti " );
                                     }
        System.out.println("Inserisci la misura della base in cm: " );
try
              {String valore=key.readLine();
                b= Double.valueOf(valore).doubleValue();
              }
        catch (Exception e)
             {System.out.println("Dati non corretti " );
             }
                                    figura.setBase(b);
    if(lettera=='q')
        {System.out.println("Bravo hai scelto il quadrato");
          figura.setAlte(b);
        }
       else
                                    {          System.out.println("Inserisci la misura dell'altezza in cm: " );
                                try
                                 {String valore=key.readLine();
                h = Double.valueOf(valore).doubleValue();
                                                     }
                            catch (Exception e)
                                {System.out.println("Dati non corretti " );
                                                    }
                              figura.setAlte(h);
                                     }
        if(lettera=='t')
            {System.out.println("Bravo hai scelto il triangolo");
              figura.setTri(2);
            }
            else figura.setTri(1);
     System.out.println("\nQuesti sono i calcoli eseguiti Area = ");
     System.out.println(figura.stampa());
        }
    }

e poi abbiamo la classe Aree, con le sue varibili private e con i suoi metodi .....

public class Aree {
    private int tria;
    private double base,altezza;
    public void setBase(double b)
               { base=b;
               }
        public void setAlte(double h)
               { altezza=h;
               }
        public void setTri(int t)
               { tria=t;
                System.out.println("Mi trovo nella classe Aree e sto inserendo "+t+" nel divisore dell'area");
 //               System.out.println("Area = " +(base*altezza/tria));
               }

public   double stampa () {                           
                    return (base * altezza)/(double) tria;                           
                    }
// public  void stampa()                  { System.out.println("Area = " +(base*altezza/tria));                      }

}