// 1: 0 // 2: 0 // 3: [1, -1] // 4: [2, 0] // 5: [2, 0] import java.util.Arrays; class Contador { private int valor; public Contador(int valorInicial) { valor = valorInicial; } public Contador incrementar() { return new Contador(valor + 1); } public String toString() { return "" + valor; } } public class PruebaContador { public static void pruebaUno(Contador contador) { contador = contador.incrementar(); } public static void pruebaDos(Contador contador) { contador.incrementar(); } public static void pruebaTres(Contador[] contadores) { for (int i = 0; i < contadores.length; i++) contadores[i].incrementar(); } public static void pruebaCuatro(Contador[] contadores) { for (int i = 0; i < contadores.length; i++) contadores[i] = contadores[i].incrementar(); } public static void pruebaCinco(Contador[] contadores) { for (int i = 0; i < contadores.length; i++) pruebaUno(contadores[i]); } public static void main(String[] args) { Contador c = new Contador(0); pruebaUno(c); System.out.println("1: " + c); pruebaDos(c); System.out.println("2: " + c); Contador[] v = {new Contador(1), new Contador(-1)}; pruebaTres(v); System.out.println("3: " + Arrays.toString(v)); pruebaCuatro(v); System.out.println("4: " + Arrays.toString(v)); pruebaCinco(v); System.out.println("5: " + Arrays.toString(v)); } }