Por un lado la clase Punto
Código
/** * La clase Punto modela a un punto en el plano * @author * @version 1.0 */ public class Punto { /* Definimos los atributos del punto */ /** Coordenada X del punto. atributo de tipo int, que representa números enteros */ private int x; /** Coordenada Y del punto */ private int y; /* definición de métodos del punto */ /** Construye un punto a partir de sus coordenadas * @param coordX es la coordenada x del nuevo punto * @param coordY es la coordenada y del nuevo punto */ public Punto(int coordX, int coordY) { x= coordX; y= coordY; } /** Imprime por pantalla la situación del punto */ public void mostrarSituacion() { } }
Por otro la clase Circulo
Código
/** * Modela un circulo a partir de su centro y su radio * @author * @version 1.0 */ class Circulo { /* Definición de atributos del círculo */ /** Centro */ private Punto centro; /** Radio */ private int radio; /** Color */ private int color; /* Definición de métodos del círculo */ /** Construye un círculo a partir de su centro y su radio * @param cnt es el centro del triángulo * @param rad es el radio del círculo */ public Circulo(Punto cnt, int rad, int clr) { centro = cnt; radio = rad; color = clr; } public Circulo(Punto cnt, int rad) { centro = cnt; radio = rad; color = 0; } public Circulo crearCirculo(Punto p) { centro = p; return this; } /** dibuja el círculo en pantalla */ public void mostrarSituacion () { centro.mostrarSituacion(); } }
Y por ultimo el programa para trabajar con esa clase circulo
Código
/** * Programa que ilustra el manejo de objetos Circulo * @author * @version 1.0 */ class PruebaCirculo { /* creamos un punto que sera el centro del circulo */ Punto cnt = new Punto (1,1); /* ...y le damos un valor al radio */ int rad = 3; /* ...creamos el circulo */ Circulo c1 = new Circulo(cnt, rad, 2); Circulo c2 = new Circulo(cnt, rad); Circulo c3 = new Circulo(new Punto(-1,-1),2); Circulo c4 = c3.crearCirculo(new Punto (3,1)); /*y dibujamos el circulo */ c3.mostrarSituacion(); c4.mostrarSituacion(); } }
Bien, el problema ocurre cuando lo ejecuto, en c3 en vez de mostrar que su centro es (-1,-1) se muestra el centro de c4.C4, funciona bien...
La verdad es q llevo bastante rompiendome la cabeza y no se me ocurre como arreglar esto, llevo bastante poco trabajando con java creo que se nota X-D.
Bueno, muchas gracias de antemano.