Esercizio 3 – Realizzazione di Classi (Punto – Rettangolo)
- Gennaio 15, 2010
- by
- Donatantonio
Implementare in java una classe Punto che contiene le coordinate di un punto nel piano e ha come interfaccia pubblica i metodi per leggere e modificare le coordinate.
Implementare la classe Rettangolo che utilizza un’istanza di Punto come vertice in basso a sinistra. Considerare poi un insieme di metodi che fanno uso del punto iniziale.
Creare un breve programma per testare Punto e Rettangolo.
Punto.java
/** implementare una classe punto che contiene le coordinate
* di un punto nel piano
*/
public class Punto
{
int numeroX;
int numeroY;
// Metodo Costruttore inizializzato con due interi
public Punto(int x , int y)
{
numeroX = x;
numeroY = y;
}
// Metodo che restituisce il valore della coordinata X
public int daiCoordinataX()
{
return numeroX;
}
// Metodo che restituisce il valore della coordinata Y
public int daiCoordinataY()
{
return numeroY;
}
// Metodo che permette di impostare nuove coordinate del punto
public void imposta(int a, int b)
{
numeroX = a;
numeroY = b;
}
// Metodo che permette di stampare a video le coordinate del punto
public void stampaPunto()
{
System.out.print("Le coodinate del punto sono : ");
System.out.print(numeroX + " , ");
System.out.println(numeroY);
}
}
Rettangolo.java
/**
* implementare la classe rettangolo che usa un'istanza di Punto
* come vertice in basso a sinistra invece delle due coordinate
*/
public class Rettangolo {
int numX;
int numY;
int lunghezza;
int altezza;
// Metodo Costruttore
// Inizializzato con lunghezza, altezza e Punto p come vertice in basso a Sx
public Rettangolo(Punto p, int l, int h)
{
this.numX = p.daiCoordinataX();
this.numY = p.daiCoordinataY();
this.lunghezza = l;
this.altezza = h;
}
// Metodo che stampa le 4 coordinate del rettangolo
public void coordinateRettangolo()
{
System.out.println("A("+this.numX+","+this.numY+")");
System.out.println("B("+this.numX+","+(this.numY+altezza)+")");
System.out.println("C("+(this.numX+lunghezza)+","+(this.numY+altezza)+")");
System.out.println("D("+(this.numX+lunghezza)+","+this.numY+")");
}
// Metodo che permette di spostare il rettangolo dato un nuovo Punto p
public void spostaRett(Punto p)
{
this.numX = p.daiCoordinataX();
this.numY = p.daiCoordinataY();
}
// Metodo che permette di modificare le dimensioni del rettangolo
public void modificaRett(int a, int b)
{
this.lunghezza = a;
this.altezza = b;
}
// Metodo che verifica lo stato dell'oggetto Rettangolo
public void verifica()
{
System.out.print("Il rettangolo è di grandezza :");
System.out.print(lunghezza + " * ");
System.out.println(altezza);
System.out.println("Le coordinate di partenza sono :");
System.out.print(numX + " , ");
System.out.println(numY);
}
}
La classe di Test. Test.java
public class Test{
public static void main(String[] args)
{
// creo un'istanza di Punto
Punto a = new Punto(10,20);
// creo un nuovo rettangolo utilizzando il punto creato prima
Rettangolo prova = new Rettangolo(a,5,7);
// verifico le condizioni del rettangolo appena costruito
prova.coordinateRettangolo();
prova.verifica();
// effettuo delle modifiche sul rettangolo
Punto newA = new Punto(20,30);
prova.spostaRett(newA);
prova.modificaRett(3,3);
// verifico le nuove condizioni del rettangolo
prova.coordinateRettangolo();
prova.verifica();
}
}

