package FigurasGeometricas; public class Segmento { private Punto [] extremos; public Segmento(Punto inicio, Punto fin) { extremos = new Punto[2]; extremos[0] = inicio; extremos[1] = fin; } public Segmento(Segmento otroSegmento) { extremos = new Punto[2]; extremos[0] = otroSegmento.extremos[0].crearCopia(); extremos[1] = otroSegmento.extremos[1].crearCopia(); } public Segmento crearCopiaEnProfundidad() { return new Segmento(extremos[0].crearCopia(), extremos[1].crearCopia()); } public Punto getInicio() { return extremos[0]; } public Punto getFin() { return extremos[1]; } public void setInicio(Punto nuevoInicio) { extremos[0] = nuevoInicio; } public void setFin(Punto nuevoFin) { extremos[1] = nuevoFin; } public void cambiar(Punto nuevoInicio, Punto nuevoFin) { extremos[0] = nuevoInicio; extremos[1] = nuevoFin; } public void mover(double desplazamientoX, double desplazamientoY) { extremos[0].mover(desplazamientoX, desplazamientoY); extremos[1].mover(desplazamientoX, desplazamientoY); } public double longitud() { return extremos[0].distancia(extremos[1]); } public String toString() { return extremos[0] + "--" + extremos[1]; } public boolean equals (Object otroObjeto) { if (! (otroObjeto instanceof Segmento)) return false; Segmento otroSegmento = (Segmento) otroObjeto; return extremos[0].equals(otroSegmento.extremos[0]) && extremos[1].equals(otroSegmento.extremos[1]); } }