Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2011, 07:00
Constant
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 0
Novato en Java

Hola.

Recien estoy comenzando en Java siguiendo diversos tutoriales y ya me he topado con mi primer problema. Me gustaría que me ayudaran a solucionarlo para poder comprender mejor esto de la orientación objetos y no arrastrar errores desde lo básico. El ejemplo está extraido de un tutorial y me extraña que esté mal, pero bueno:

Se trata de un applet cuya salida sean los números del 0 al 3. Y curiosamente me imprime los números del 3 al 6 :S

Archivo contador.java

Código:
public class Contador {			
  int cnt;	
  public Contador() {			
      cnt = 0;	
				
  }

  public int incCuenta() {			
      cnt++;				
		    return cnt;				
	  }
  public int getCuenta() {		
      return cnt;				
	  }  
}
Archivo Ejemplo2.java

Código:
import java.applet.*;
import java.awt.*;

public class Ejemplo2 extends Applet {
  static int n;
  static Contador laCuenta;

  // Constructor…
  public Ejemplo2 () {
    laCuenta = new Contador();
  }

  public void paint (Graphics g) {
    g.drawString ("Contando", 20, 20);
    g.drawString (String.valueOf(laCuenta.getCuenta()), 20, 35 );
    n = laCuenta.incCuenta();
    g.drawString (String.valueOf(n), 20, 50 );
    laCuenta.incCuenta();
    g.drawString (String.valueOf(laCuenta.getCuenta()), 20, 65 );
    g.drawString (String.valueOf(laCuenta.incCuenta()), 20, 80 );
  }
  
}
¿Porqué me inicia en 3?
¿Podría ser que al hacer uso de la misma clase en otra aplicación DOS (que sí me contó bien) el valor de la variable se quedase en 3?
¿Porque al crear la instancia no asigna el valor 0 a la variable?

Gracias