elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 22:21  



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

Desconectado Desconectado

Mensajes: 1


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

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
/**
* 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() {
System.out.println("Punto ("+x+","+y+")");
}
}
 

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 () {
System.out.println("Este círculo se define por:");
System.out.println("Un centro:");
centro.mostrarSituacion();
System.out.println("Y un radio:"+radio+"");
System.out.println("su color:"+color+"");
 
}
 
 
}
 

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 {
public static void main(String args[]) {
/* 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.
En línea
egyware

Desconectado Desconectado

Mensajes: 130



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

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 »

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: 130



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

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 Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats