Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/02/2013, 11:46
Avatar de zero0097
zero0097
 
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: como puedo imprimir el atributo en el método

checa lo que te puse como 2do punto...
Cita:
Iniciado por zero0097 Ver Mensaje
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 original
  1. public class Test {
  2.     //mi variable miembro de clase
  3.     public int numero = 0;
  4.  
  5.     public static void main(String[] args) {
  6.         //creo un objeto de mi clase
  7.         Test objeto = new Test();
  8.  
  9.         //usando ese objeto puedo usar la variable que pertenece al objeto!
  10.         System.out.println("el numero es" + objeto.numero);
  11.     }
  12. }

Si lo resumimos, puede quedar asi:
Código Java:
Ver original
  1. public class Test {
  2.     //mi variable miembro de clase
  3.     public int numero = 0;
  4.  
  5.     public static void main(String[] args) {
  6.         //creo un objeto de mi clase y al mismo tiempo lo uso
  7.         System.out.println("el numero es" + new Test().numero);
  8.     }
  9. }

O la otra solucion es:
Código Java:
Ver original
  1. public class Test {
  2.     //mi variable estática
  3.     public static int numero = 0;
  4.  
  5.     public static void main(String[] args) {
  6.         //ahora puedo usar la variable por que también es estática
  7.         System.out.println("el numero es" + numero);
  8.     }
  9. }

O también:
Código Java:
Ver original
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         //mi variable ahora es local, la puedo usar sin problemas
  4.         int numero = 0;
  5.  
  6.         //creo un objeto de mi clase y al mismo tiempo lo uso
  7.         System.out.println("el numero es" + numero);
  8.     }
  9. }


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.
__________________
De nada, hay te encargo +1...