Ejemplo 3 - Demostración del uso de vectores y objetos

Objetivo

Comprender la forma de combinar el uso de vectores y objetos

Enunciado

Un polígono se una figura geométrica compuesta por la unión de una serie de puntos. Haga una clase que mediante el uso de vectores permita almacenar instancias de la clase Punto.

Solución

En esta solución la clase Polígono se compone de un vector de objetos de la clase Punto.

El polígo se "compone" de Puntos. Los comentarios dentro del código explican la solución planteada.

 public class Punto {
private double x; // Es privado.
private double y; // Es privado.
public Punto(double x, double y){
setX(x);
setY(y);
}
public void setX(double x){
this.x = x ;
}
public double getX() {
return x;
}
public void setY(double y){
this.y = y;
}
public double getY(){
return y;
}
public String toString(){
return "(" +x+","+y+")";
}
}

 

La clase Polígono se presenta a continuación:

public class Poligono {
private int cantidadDePuntos; // Es privado.
private Punto punto[]; // Referencia a un vector de puntos
public void agregarPunto(Punto punto){
// Si hay campo colocar el punto en el siguiente espacio disponible del vector
if(cantidadDePuntos<this.punto.length)
this.punto[cantidadDePuntos++] = punto;
}
public Poligono(int maximoDePuntos) {
if(maximoDePuntos>1)
punto = new Punto[maximoDePuntos];
else {
System.err.println("Advertencia: tamaño de polígono inválido->Se creo el Polígono con tamaño por omisión 10");
punto = new Punto[10];
}
}
public String toString(){
String resultado = "POLIGONO:[";
for(int i = 0; i<cantidadDePuntos; i++)
resultado += punto[i]; // La concatenacion con += siempre llama al método toString() de la clase automaticamente
resultado += "]";
return resultado;
}
}

 

PruebaPolígono solicita al usuario la cantidad de puntos que tendrá el polígono y luego lee las coordenadas de los mismos. Posteriormente utiliza el método toString del Polígono, el cual a su vez llama a toString para cada Punto, para presentar en pantalla la información del Polígono.

import javax.swing.JOptionPane;
public class PruebaPoligono {
public static void main(String argv[]){
int cantidadDePuntos = Integer.parseInt(JOptionPane.showInputDialog("Cantidad de puntos del polígono?"));
Poligono poligono = new Poligono(cantidadDePuntos);
int x=0;
int y=0;
for(int i=0; i<cantidadDePuntos;i++){
x = Integer.parseInt(JOptionPane.showInputDialog("Coordenada x del punto "+(i+1)));
y = Integer.parseInt(JOptionPane.showInputDialog("Coordenada y del punto "+(i+1)));
poligono.agregarPunto(new Punto(x,y));
}
System.out.println("Se creo el Polígono : "+poligono);
System.exit(0);
}
}

A continuación se muestra un ejemplo de creación de un polígono de 6 puntos. Solo se muestra la lectura de las coordenadas del primer punto y los demás se omiten para simplificar el ejemplo.

Primero se solicita la cantidad de puntos:

asi se digitó el punto (1,2) de igual forma se digitan los puntos (2,3) (3,4) etc..

La salida es la siguiente:

Se creo el Polígono : POLIGONO:[(1.0,2.0)(3.0,4.0)(5.0,6.0)(7.0,8.0)(9.0,10.0)(11.0,12.0)]

 

Código Fuente

Punto.java

Polígono.java

PruebaPolígono.java