elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda ejercicio sencillo (creo) Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda ejercicio sencillo (creo) Java  (Leído 3,321 veces)
Bestialazo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda ejercicio sencillo (creo) Java
« en: 16 Octubre 2007, 20:51 pm »

Bien, tengo que hacer una practica en la que tengo casi todo hecho (creo, y a mi manera porque es mi segunda practica con java xD) en la que tengo lo siguiente ahora mismo :

Por un lado la clase Punto

Código
  1. /**
  2.  * La clase Punto modela a un punto en el plano
  3.  * @author
  4.  * @version 1.0
  5.  */
  6. public class Punto {
  7. /* Definimos los atributos del punto */
  8. /** Coordenada X del punto. atributo de tipo int, que representa números enteros */
  9. private int x;
  10. /** Coordenada Y del punto */
  11. private int y;
  12.  
  13. /* definición de métodos del punto */
  14. /** Construye un punto a partir de sus coordenadas
  15. * @param coordX es la coordenada x del nuevo punto
  16. * @param coordY es la coordenada y del nuevo punto
  17. */
  18. public Punto(int coordX, int coordY) {
  19. x= coordX;
  20. y= coordY;
  21. }
  22.  
  23. /** Imprime por pantalla la situación del punto */
  24. public void mostrarSituacion() {
  25. System.out.println("Punto ("+x+","+y+")");
  26. }
  27. }
  28.  

Por otro la clase Circulo

Código
  1. /**
  2.  * Modela un circulo a partir de su centro y su radio
  3.  * @author
  4.  * @version 1.0
  5.  */
  6. class Circulo {
  7. /* Definición de atributos del círculo */
  8. /** Centro */
  9. private Punto centro;
  10. /** Radio */
  11. private int radio;
  12. /** Color */
  13. private int color;
  14.  
  15.  
  16.  
  17.  
  18.  
  19. /* Definición de métodos del círculo */
  20. /** Construye un círculo a partir de su centro y su radio
  21. * @param cnt es el centro del triángulo
  22. * @param rad es el radio del círculo
  23. */
  24. public Circulo(Punto cnt, int rad, int clr) {
  25. centro = cnt;
  26. radio = rad;
  27. color = clr;
  28. }
  29. public Circulo(Punto cnt, int rad) {
  30. centro = cnt;
  31. radio = rad;
  32. color = 0;
  33. }
  34.  
  35. public  Circulo crearCirculo(Punto p) {
  36.   centro = p;
  37. return this;
  38.  
  39. }
  40.  
  41. /** dibuja el círculo en pantalla */
  42. public void mostrarSituacion () {
  43. System.out.println("Este círculo se define por:");
  44. System.out.println("Un centro:");
  45. centro.mostrarSituacion();
  46. System.out.println("Y un radio:"+radio+"");
  47. System.out.println("su color:"+color+"");
  48.  
  49. }
  50.  
  51.  
  52. }
  53.  

Y por ultimo el programa para trabajar con esa clase circulo

Código
  1. /**
  2.  * Programa que ilustra el manejo de objetos Circulo
  3.  * @author
  4.  * @version 1.0
  5.  */
  6. class PruebaCirculo {
  7. public static void main(String args[]) {
  8. /* creamos un punto que sera el centro del circulo */
  9. Punto cnt = new Punto (1,1);
  10.  
  11.  
  12. /* ...y le damos un valor al radio */
  13. int rad = 3;
  14. /* ...creamos el circulo */
  15. Circulo c1 = new Circulo(cnt, rad, 2);
  16. Circulo c2 = new Circulo(cnt, rad);
  17. Circulo c3 = new Circulo(new Punto(-1,-1),2);
  18. Circulo c4 = c3.crearCirculo(new Punto (3,1));
  19. /*y dibujamos el circulo */
  20.        c3.mostrarSituacion();
  21. c4.mostrarSituacion();
  22.  
  23. }
  24. }


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.


En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Ayuda ejercicio sencillo (creo) Java
« Respuesta #1 en: 22 Octubre 2007, 14:57 pm »

bueno tu problema es sencillo y te lo digo altiro
c3 y c4 son iguales por esta sentencia de tu clase circulo

Código:
public  Circulo crearCirculo(Punto p) {
centro = p;
return this; //<----
}
mejor crea un nuevo objeto con los datos de tu circulo actual

xauuu


En línea

Overloaded

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda ejercicio sencillo (creo) Java
« Respuesta #2 en: 25 Octubre 2007, 17:52 pm »

Yo creo que el fallo esta mas bien cuando escribe:

Circulo c4 = c3.crearCirculo(new Punto (3,1));

Ahi lo que esta haciendo es Crear un nuevo circulo en la variable c3 y luego iguala c4 a esa nueva c3.
En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Ayuda ejercicio sencillo (creo) Java
« Respuesta #3 en: 29 Octubre 2007, 18:49 pm »

si ahi tb esta el problema pero
Circulo c4 = c3.crearCirculo(new Punto (3,1));
lo que hace aqui es guardar un nuevo punto del centro y c4 se iguala a c3 osea apuntan a la misma sección de memoria deberia crear un nuevo circulos con los datos que ya tiene y con el nuevo punto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
una ayuda en un ejercicio en java.
Java
XpandyX 2 3,755 Último mensaje 24 Enero 2011, 00:10 am
por XpandyX
Ayuda con ejercicio de POO en java
Java
Erick9536 1 2,861 Último mensaje 7 Abril 2012, 20:11 pm
por [Case]
[Ayuda] Ejercicio sencillo en C
Programación C/C++
Torino10 7 4,336 Último mensaje 25 Abril 2012, 18:44 pm
por Torino10
Ayuda ejercicio en java
Ejercicios
SOADOSK 1 2,984 Último mensaje 26 Febrero 2013, 17:50 pm
por 1mpuls0
Ayuda con este ejercicio de recursion en java.
Java
Phobos16 1 1,790 Último mensaje 30 Agosto 2014, 04:33 am
por gordo23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines