Esercizio
Progetto UML e Classi Java
Progettare una classe di nome “Rettangolo” che contiene i dati di un rettangolo e memorizzi l’area e il perimento. Oltre ai valori dei sui lati, definire un metodo per inizializzare tali valori dei lati, un metodo per il calcolo dell’area e un metodo per il calcolo del perimentro.
Definire un metodo per la stampa dei dati memorizzati e dei metodi per leggere e impostare singolarmente i valori dei lati del rettangolo. Realizzare un diagramma UML per risolvere il problema e codificare tale diagramma in Java.,
Svolgimento
La classe è composta da 4 attributi la base, l’altezza del rettangolo, il perimento e l’area tipicamente numeri reali. All’interno della classe sono previsti dei metodi fra cui il costruttore che memorizza le misure della base e dell’altezza nella classe; i metodi “calcolaArea” e “caclola2P” rispettivamente per il calcolo dell’area e il perimetro, il metodo “Stampa” per la stampa delle caratteristiche del rettangolo e i metodi get e set per leggere e scrivere in modo individuale i lati della classe.
E’ definita la classe Test ove è svolta la prova della classe con la definizione dei valori dei lati del rettangolo o con valori costanti o con l’input dei dati da tastiera. In questo modo è istanziato un oggetto della classe e sono stampati i dati del rettangolo dopo aver memorizzato area e base dello stesso.
Gli attributi sono privati e i metodo sono pubblici. Nella classe di nome “Test” è contenuto solo il metodo “main”. I metodi per il calcolo dell’area e del perimetro sono metodi che ritornano un valore di tipo numerico reale.
Il Diagramma UML qui sotto rappresentato:
il codice Java della classe “Rettangolo”
package com.mycompany.progettorettangolo;
public class Rettangolo {
private float base;
private float altezza;
private float area;
private float p;
public Rettangolo(float x, float y)
{
this.base=x;
this.altezza=y;
area=0;
p=0;
}
float calcoloArea()
{
area=base*altezza;
return area;
}
float calcoloPerimentro()
{
p=2*base+2*altezza;
return p;
}
float getBase()
{
return base;
}
void setBase(float x)
{
base=x;
}
float getAlteza()
{
return altezza;
}
void setAltezza(float x)
{
altezza=x;
}
void Stampa()
{
System.out.println("Area del Rettangolo :"+area);
System.out.println("Periemtro del Rettangolo :"+p);
}
}
e ll codice Java della classe “Test”.
package com.mycompany.progettorettangolo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
float a=10;
float b=20;
/*Rettangolo r=new Rettangolo(b,a);
float ar=r.calcoloArea();
float p2=r.calcoloPerimentro();
r.Stampa();*/
Scanner sc=new Scanner(System.in);
System.out.println("Inserisci la base:");
b=sc.nextFloat();
System.out.println("Inserisci l'altezza:");
a=sc.nextFloat();
Rettangolo r=new Rettangolo(b,a);
float ar=r.calcoloArea();
float p2=r.calcoloPerimentro();
r.Stampa();
}
}