checa lo que te puse como 2do punto...
Cita:
Iniciado por zero0097 Por otro lado, el metodo main es un método estático, y la variable numerr no lo es!, esto te dara un problema de non-static o algo asi, puedes solucionarlo de 2 formas, que la variable numerr sea static: public static int numerr = 0; o bien, crear un objeto de tu clase en el metodo main y usando ese objeto acceder a la variable num: new NombreDeClase().numerr
Tu quieres imprimir la variable numero que esta declarada como miembro de clase (que es cuando la declaras fura de los metodos, como en este caso), dado que el metodo main() de java es estático NO podras hacer referencia a variables
no estáticas, para eso tienes 2 soluciones.
1.- Declarar la variable numero también como estática. Esto es
public static int numero = 0;.
2.- Crear un objeto de tu clase para así poder acceder a la variable de miembro. Esto es dentro del metodo main() crear:
MiClase miObjeto = new MiClase(); luego puedes usa
System.out.println("El numero es " + miObjeto.numero);
Por ejemplo:
Código Java:
Ver originalpublic class Test {
//mi variable miembro de clase
public int numero = 0;
public static void main
(String[] args
) { //creo un objeto de mi clase
Test objeto = new Test();
//usando ese objeto puedo usar la variable que pertenece al objeto!
System.
out.
println("el numero es" + objeto.
numero); }
}
Si lo resumimos, puede quedar asi:
Código Java:
Ver originalpublic class Test {
//mi variable miembro de clase
public int numero = 0;
public static void main
(String[] args
) { //creo un objeto de mi clase y al mismo tiempo lo uso
System.
out.
println("el numero es" + new Test
().
numero); }
}
O la otra solucion es:
Código Java:
Ver originalpublic class Test {
//mi variable estática
public static int numero = 0;
public static void main
(String[] args
) { //ahora puedo usar la variable por que también es estática
System.
out.
println("el numero es" + numero
); }
}
O también:
Código Java:
Ver originalpublic class Test {
public static void main
(String[] args
) { //mi variable ahora es local, la puedo usar sin problemas
int numero = 0;
//creo un objeto de mi clase y al mismo tiempo lo uso
System.
out.
println("el numero es" + numero
); }
}
Para resumir, cuando un método es estático (como el metodo main) no puedes mandar llamar metodos no estáticos ni variables no estaticas. A menos que crees un objeto como te he explicado arriba. Pero si el objeto lo creas como miembro de clase tendrás el mismo problema, a menos que el objeto tambien sea estático.
Te aconsejo, las variables miembro en lugar de
public haslas
private, y trata de usar lo menos que se pueda de metodos y variables estáticas.