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