Comprender el uso de constructors y destructores para la creación de
objetos compuestos
Construya una clase triángulo que tenga un método para visualizar sus coordenadas y otro para devolver su diametro.
Haga que el triángulo se componga de 3 líneas interconectadas.
Cada línea se compondrá de dos puntos (origen y destino) con coordenadas
reales. Implemente métodos constructores con parámetros para cada
clase.
La clase línea deberá tener un método para saber su dimensión
(distancia entre los dos puntos). La clase punto deberá tener un método
que devuelve la distancia entre un punto y otro. Todas las clases deberán
tener un método llamado toString() para devolver un String con los atributos
de la figura.
/** |
Punto es la clase que compone a Linea, sabe como calcular la distancia entre 2 puntos. Contiene las coordenadas X, Y.
/** * Linea representa un línea compuesta de 2 puntos. */ public class Linea{ /** * Punto de origen */ Punto origen; Punto destino; /** * Constructor por defecto de la clase Linea */ public Linea(){ this.origen = new Punto(); this.destino = new Punto(); } /** * Constructor sobrecargado */ public Linea(Punto origen, Punto destino){ this.origen = origen; this.destino = destino; } /** * Retorna la dimensión de la línea */ public int getDimension(){ Punto temporal = new Punto(); System.out.println("Sacando dimension linea: "+temporal.distanciaEntrePuntos(origen, destino)); return temporal.distanciaEntrePuntos(origen, destino); } } |
Linea está compuesta por 2 puntos, obtiene su dimension a traves de la clase Punto, específicamente a través de distanciaEntrePuntos.
temporal.distanciaEntrePuntos(origen, destino);
import javax.swing.*; /** * La clase Triangulo representa un triíangulo compuesto de 3 Lineas */ public class Triangulo{ /* * Lineas del triíngulo */ Linea linea1; Linea linea2; Linea linea3; /** * Constructor por omisión */ public Triangulo(){ this.linea1 = new Linea(); this.linea2 = new Linea(); this.linea3 = new Linea(); } /** * Constructor sobrecargado * * /| * / | * Linea3 / | Linea 2 * /___| * Linea1 */ public Triangulo(Linea linea1, Linea linea2, Linea linea3){ if(linea1.getDimension() + linea2.getDimension() > linea3.getDimension()){ System.out.println("Creando un triangulo válido"); this.linea1 = linea1; this.linea2 = linea2; this.linea3 = linea3; } else{ JOptionPane.showMessageDialog(null,"Error", "Error", JOptionPane.ERROR_MESSAGE); System.out.println("Creando un triangulo canónico"); this.linea1 = new Linea(new Punto(0,0),new Punto(0,0)); this.linea2 = new Linea(new Punto(0,0),new Punto(0,1)); this.linea3 = new Linea(new Punto(1,0),new Punto(0,0)); } } } |
Triangulo esta formado de 3 lineas, al intentar construir un nuevo Triangulo, se verifica si se cumple con una terna pitagórica.
/** |
PruebaTriangulo, crea 2 instancias diferentes de Triangulo, uno de ellos válido, el otro inválido.
La salida esperada es la siguiente: