Foros del Web » Programación para mayores de 30 ;) » Java »

Certificacion java, duda

Estas en el tema de Certificacion java, duda en el foro de Java en Foros del Web. Hola!! Me puse a estudiar para la certificación java y me encontre con varias pruebas de ejemplo y en una encontré este codigo: public class ...
  #1 (permalink)  
Antiguo 03/04/2008, 10:26
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
Certificacion java, duda

Hola!!

Me puse a estudiar para la certificación java y me encontre con varias pruebas de ejemplo y en una encontré este codigo:

public class Foo {
public static void main (String [] args) {
StringBuffer a = new StringBuffer ("A");
StringBuffer b = new StringBuffer ("B");
operate (a,b);
System.out.println(a + "," +b);
}
static void operate (StringBuffer x, StringBuffer y) {
x.append (y);
y = x;
}
}

Según esto el resultado es "AB, B" y en efecto es ese ya lo he probado pero no sé porque, pues cuando en el método operate despues de y= x imprimo "x" y "y" ambos tienen AB porque cuando los imprime en el main solo x ha conservado el valor??. Ojala puedan ayudarme, gracias!
  #2 (permalink)  
Antiguo 04/04/2008, 08:55
Avatar de Nighter  
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Certificacion java, duda

esto es porque en el metodo lo que estas haciendo es agregando (append) a x ("A") el valor de y ("B") y como x en realidad es el objeto a entonces a vale "AB" despues igualas y a x pero como no lo modificas ni nada al momento de imprimir System.out.println(a + "," +b); se imprime a ("AB") y el valor de b ("B").

Espero que te sirva de ayuda, por cierto, donde te vas a certificar?
  #3 (permalink)  
Antiguo 08/04/2008, 10:20
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Certificacion java, duda

Me voy a certificar en un centro de aqui de Guadalajara.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.