Fabio Donatantonio

Resta connesso

Software Developer / Adjunct Professor

Esercizio 3 – Realizzazione di Classi (Punto – Rettangolo)

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();

  }
}
Fabio Donatantonio

Fabio Donatantonio. Analista e sviluppatore full-stack di applicazioni web in linguaggio PHP. Professore a Contratto per le cattedre di Fondamenti di Informatica e Archivistica Digitale presso Università degli Studi eCampus. Dal 2008 curatore del sito www.donatantonio.net, da sempre appassionato di programmazione, mare, sigari e... musica.

Leave a reply

Your email address will not be published. Required fields are marked *

 

Didattica

Università degli Studi eCampus
Data Evento
09/02/2021
14:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Letteratura, Lingua e Cultura Italiana - Lettere
09/02/2021
14:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
Risorse
Guida HTML/CSS per principianti (link)
Introduzione agli ipertesti (link)
Esercizi guidati in Java (link)
Intelligenza artificiale (link)
Libri
Fondamenti di Informatica (2011) (link)
Informatica per le Scienze Umane (2011) (link)
Fondamenti di Informatica (2014) (link)
Pagina Docente
uniecampus.it - Scheda Docente (link)
Contatti
fabio.donatantonio[at]uniecampus.it

JWhisper, sviluppato presso il Dipartimento di Informatica Applicata dell'Università degli Studi di Salerno:

Stay Connected

Twitter

Le mie foto

Foto di Fabio Donatantonio
×