Pregunta sobre referencias
miércoles, abril 2, 2014 at 6:00PM
jcarmonaloeches
¿Cuál es la salida del siguiente programa y por qué? NOTA: no vale hacer uso de IDE.

package test;

import java.util.ArrayList;
import java.util.List;

/**
 * Probando referencias en objetos y en string's
 * 
 * @author Jaime Carmona Loeches
 * 
 */
public class Pruebas {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List lista1 = new ArrayList();
		lista1.add(new Objeto(1, 1));

		List lista2 = new ArrayList();
		lista2.add("1");

		for (Objeto objeto : lista1) {
			objeto.setA(2);
			objeto.setB(2);
		}

		for (String objeto : lista2) {
			objeto = "2";
		}

		for (Objeto objeto : lista1) {
			System.out.println(objeto.toString());
		}

		for (String objeto : lista2) {
			System.out.println(objeto.toString());
		}
	}

}

class Objeto {
	int a = 0;
	int b = 0;

	public Objeto(int a, int b) {
		super();
		this.a = a;
		this.b = b;
	}

	public int getA() {
		return a;
	}

	public void setA(int a) {
		this.a = a;
	}

	public int getB() {
		return b;
	}

	public void setB(int b) {
		this.b = b;
	}

	@Override
	public String toString() {
		return "Objeto [a=" + a + ", b=" + b + "]";
	}

}

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.