elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:23  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [Actualizado] Ayuda código Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Actualizado] Ayuda código Java  (Leído 1,028 veces)
framled

Desconectado Desconectado

Mensajes: 12


Ver Perfil
[Actualizado] Ayuda código Java
« en: 12 Octubre 2011, 23:12 »

Hola a todos...
Tengo un gran problema acerca de este código de la clase "Cuadrado" que se detalla mas adelante...

Código
//Clase cuadrado...
public class Cuadrado extends Pieza{
private Bloque[] bloque;
public Cuadrado(double [] center, Color color){
       super(center,color);
       this.bloque = new Bloque[4];
       for(int i = 0 ; i<4 ; i++){
           this.bloque[i] = new Bloque(center,color);
           if(i==1){center[0]++ ;center[1]--;}else{center[1]++;}
       }
   }
}
 

Hay algo malo en eso??
por favor estoy estudiando para cuando vuelva a clases me valla bien y necesito de su ayuda


« Última modificación: 15 Octubre 2011, 03:12 por framled » En línea
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: AYUDAAAAA NECESITO AYUDA CON CODIGO JAVA KiEN ME AYUDA
« Respuesta #1 en: 13 Octubre 2011, 01:43 »

Revisate toda la teoría que tengas, sobre todo los conceptos de herencia. Estás haciendo uso de super de una manera terrible.

Saludos.


En línea

framled

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: AYUDAAAAA NECESITO AYUDA CON CODIGO JAVA KiEN ME AYUDA
« Respuesta #2 en: 13 Octubre 2011, 05:08 »

aaaaaaaaaaaaaaaaaaaaaaaaaaa siiiiii eso me temiaaa.... mis bases no son muy buenas y estoy practicando haciendo este tipo de clases xD...

algunos consejos???
En línea
framled

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Ayuda código Java
« Respuesta #3 en: 14 Octubre 2011, 04:18 »

Me podrian ayudar con el codigo.... q no entiendo en que me equivoque, por mas que leo la teoria

serai de gran ayuda gracias...
En línea
SXF

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: [Actualizado] Ayuda código Java
« Respuesta #4 en: 15 Octubre 2011, 10:36 »

http://www.programacion.com/articulo/tutorjava_nivel_basico_97/21
En línea



http://www.facedit.es
-> Mi Web personal.
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: [Actualizado] Ayuda código Java
« Respuesta #5 en: 15 Octubre 2011, 16:05 »

Viendo que has actualizado el código, ¿a que te refieres con que si está mal? ¿No te da el resultado esperado? ¿Cuál es el resultado que esperas que te de?
En línea

framled

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Actualizado] Ayuda código Java
« Respuesta #6 en: 15 Octubre 2011, 21:00 »

Viendo que has actualizado el código, ¿a que te refieres con que si está mal? ¿No te da el resultado esperado? ¿Cuál es el resultado que esperas que te de?

si esta mal escrito me refiero a que aun me da el mismo error anterior (cada bloque tenia como centro el mismo centro que el bloque[3];)
quiero que cada bloque tenga un centro de:
bloque[0] = {4.5 , 13.5}
bloque[1] = {4.5 , 14.5}
bloque[2] = {5.5 , 13.5}
bloque[3] = {5.5 , 14.5}


gracias por los pauntes
« Última modificación: 15 Octubre 2011, 21:02 por framled » En línea
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: [Actualizado] Ayuda código Java
« Respuesta #7 en: 15 Octubre 2011, 23:38 »

El error se llama "Aliasing".

En Java todo lo que le pasas a una función como parametro, lo que se pasa realmente es el identificador de objeto (su referencia en memoria, por decirlo de alguna forma), por tanto las modificaciones que realices sobre dicho objeto se verán reflejadas fuera.

Es decir, aunque no hicieses esta modificación:
Código
if(i==1){center[0]++ ;center[1]--;}else{center[1]++;}
todos tus objetos seguirían teniendo el mismo centro.

¿Cuál puede ser la solución? Realizar una copia del array y asignarle al centro la copia, o crear un array nuevo y ponerle los distintos valores.

Te recomiendo que te leas muchos muchos muchos apuntes, si no dominas estas cosas tan básicas, estás perdido en Java.

Saludos.
En línea

framled

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: [Actualizado] Ayuda código Java
« Respuesta #8 en: 16 Octubre 2011, 01:54 »

¿Cuál puede ser la solución? Realizar una copia del array y asignarle al centro la copia, o crear un array nuevo y ponerle los distintos valores.

Te refieres a algo como esto??:

Código
//Clase cuadrado...
public class Cuadrado extends Pieza{
private Bloque[] bloque;
public Cuadrado(double [] center, Color color){
       super(center,color);
       this.bloque = new Bloque[4];
       Bloque bloq = new Bloque[4];
       for(int i = 0 ; i<4 ; i++){
           bloq[i] = new Bloque(center,color);
           if(i==1){center[0]++ ;center[1]--;}else{center[1]++;}
       }
       this.bloque = bloq;
   }
}
}
 

es el mismo error...
Gracias SALUDOS
« Última modificación: 16 Octubre 2011, 01:55 por framled » En línea
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: [Actualizado] Ayuda código Java
« Respuesta #9 en: 16 Octubre 2011, 14:10 »

No, no me refiero a eso, me refiero a algo así:
Código
public void metodo(double[] centro){
   //Suponiendo que centro solo tiene dos posiciones:
   double[] nuevo = new double[2];
   nuevo[0] = centro[0];
   nuevo[1] = centro[1];
   bloque = new Bloque(nuevo, color);
}

algo así me refiero. Tienes que realizar una copia del array, porque me imagino que al hacer estas dos llamadas:
Código
super(center,color);
bloq[i] = new Bloque(center,color);

dentro del código de cada constructor estarás haciendo algo así:
Código
this.centro = center //<-Aliasing

En resumen, tienes que hacer una copia del array si quieres tener centros distintos e independientes.

Y te vuelvo a repetir, leete mucha más teoría. La práctica es necesaria, pero la teoría es mucho más importante.

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
codigo java
Desarrollo Web
DiaBoLiK 3 492 Último mensaje 20 Febrero 2004, 18:51
por DiaBoLiK
"El Código Penal está muy actualizado en los delitos cibernéticos"
Noticias
Banker25 0 255 Último mensaje 19 Mayo 2008, 18:07
por Banker25
AYUDA!!! Creacion de un convertidor de pseudo a codigo JAVA
Java
robertg4 6 2,711 Último mensaje 7 Julio 2010, 20:31
por Debci
Ayuda con codigo de java
Java
pakosamuel 5 1,262 Último mensaje 5 Junio 2010, 21:35
por Leyer
Ayuda con código Java!
Java
compunova 2 401 Último mensaje 18 Octubre 2011, 23:43
por klaine
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines