Java - Problemas instanciando atributos en contexto estático

   
Vista:

Problemas instanciando atributos en contexto estático

Publicado por Raul (5 intervenciones) el 20/01/2018 22:21:56
Tengo el siguiente programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Test {
    int i=8;
    int j=9;
 
    public static void main(String[] args){
        add();
    }
 
    public static void add(){
        int k = i+j;
        System.out.println(k);
    }
}

Este programa me indica el siguiente error:
non-static variable i cannot be referenced from a static context

Yo he tenido los mismos problemas con métodos y los soluciono instanciándolos, por ejemplo;
1
2
MiClase obj = new MiClase();
obj.metodo();

como puedo ocupar estos atributos en contextos estáticos?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pedro

Problemas instanciando atributos en contexto estático

Publicado por Pedro (50 intervenciones) el 20/01/2018 22:41:06
Prueba esto y nos cuentas

1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args){
        Test.add();
    }
 
   public class Test {
    int i=8;
    int j=9;
 
      public static void add(){
        int k = i+j;
        System.out.println(k);
    }
}

Una cosa es crear un Objeto de una Clase y otra cosas es utilizar los atributos y métodos estáticos de una Clase son conceptos totalmente distintos compi.

Regards
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas instanciando atributos en contexto estático

Publicado por Raul (5 intervenciones) el 21/01/2018 22:01:21
Hola Pedro. Gracias por tu respuesta. Utilicé tu código pero sigo teniendo el mismo problema. Utilicé una clase tipo (por ejemplo public classTipo()) y dentro de ella puse todo el código que pusiste. Yo soy nuevo en Java, recién estoy aprendiendo los conceptos. Si puedo entender bien un objeto de una clase es una instancia de una clase. Por ejemplo, en mi caso, la clase sería Test(); un objeto de esta clase sería t después de esta línea de código; Test t = new Test(); y los atributos y métodos estáticos son atributos y métodos de la CLASE y no atributos y métodos de la INSTANCIA. Esto significa que los métodos estáticos tienen un comportamiento similar a las constantes en el sentido de que no se pueden sobrescribir y necesitan ocupar instancias de otros métodos o atributos en vez de los métodos o atributos mismos. La pregunta es entonces como instanciar atributos y variables como se instancian los métodos en forma regular.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas instanciando atributos en contexto estático

Publicado por Raul (5 intervenciones) el 25/01/2018 16:19:59
Finalmente solo había que instanciar los atributos de esta forma:
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
    int i=8;
    int j=9;
    public static void main(String[] args){
        add();
    }
    public static void add(){
        Test t = new Test();
        int k = t.i + t.j;
        System.out.println(k);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar