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:
Archivo Ejemplo2.javapublic class Contador { int cnt; public Contador() { cnt = 0; } public int incCuenta() { cnt++; return cnt; } public int getCuenta() { return cnt; } }
Código:
¿Porqué me inicia en 3? 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 ); } }
¿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