package FigurasGeometricas; public class Circulo { private Punto centro; private double radio; public Circulo(Punto centroInicial, double radioInicial) { centro = centroInicial; radio = radioInicial; } public Circulo() { radio = 1; centro = new Punto(0, 0); } public Circulo crearCopiaSuperficial() { return new Circulo(centro, radio); } public Circulo crearCopiaEnProfundidad() { return new Circulo(centro.crearCopia(), radio); } public Punto getCentro() { return centro; } public double getRadio() { return radio; } public void setCentro(Punto nuevoCentro) { centro = nuevoCentro; } public void setRadio(double nuevoRadio) { radio = nuevoRadio; } public void cambiar(Punto nuevoCentro, double nuevoRadio) { centro = nuevoCentro; radio = nuevoRadio; } public void mover(double desplazamientoX, double desplazamientoY) { centro.mover(desplazamientoX, desplazamientoY); } public void dilatar(double factorDilatacion) { radio *= factorDilatacion; } public double distancia(Circulo otroCirculo) { return centro.distancia(otroCirculo.centro); } public String toString() { return "[centro = " + centro + ", radio = " + radio + "]"; } public boolean equals (Object otroObjeto) { if (! (otroObjeto instanceof Circulo)) return false; Circulo otroCirculo = (Circulo) otroObjeto; return centro.equals(otroCirculo.centro) && radio == otroCirculo.radio; } }