[ karatas @ 17.01.2007. 09:29 ] @
Pozdrav!


Dobivam slijedecu gresku u Eclipse-u: Cannot make a static reference to the non-static field temp.
Nije mi bas previse jasno zasto, a evo kako mi kod izgleda:

definicija klase
{
definicija varijabli;
String temp;
definicija main metode
{
ako ovdje pozivam temp varijablu dobivam gore navedenu gresku. why?
}
}

naravno, rjesenje je da pri definicija varijable temp nju deklariram kao static,ali sto ako to ne zelim?

Hvala puno!
[ Toxter @ 17.01.2007. 09:36 ] @
Zato sto staticki atributi pripadaju klasi, a ne objektu.
Znaci instanciraj objekat pa preko objekta pristupi tom atributu (npr. preko gettera).
[ mikorkns @ 17.01.2007. 10:37 ] @

Ono sto je Toxter rekao:

class Klasa {

private String temp;

public Klasa(String temp) {
this.temp = temp;
}


public static void main(String[] args) {
Klasa objKlasa = new Klasa();
System.out.println(objKlasa.getTemp());
}

}

Pozz.
[ Toxter @ 17.01.2007. 10:47 ] @
Mala ispravka :
Code:
class Klasa {

    private String temp;
    
    public Klasa(String temp) {
       this.temp = temp;
    }

    /**
    * Getter for temp
    */
    public String getTemp(){
       return temp;
    }


   public static void main(String[] args) {
      Klasa objKlasa = new Klasa("neki string");
      System.out.println(objKlasa.getTemp());
   }

}

[ Java Beograd @ 17.01.2007. 12:36 ] @
Ili, kratko i prosto rečeno:

Ne možeš u static metodi da radiš ne static promenljivama.

Ne static promenljive su promenljive objekta, a static su promenljive klase. (Ovo moraš da razumeš tj. shvatiš, tj. naučiš) Ovo su bazične stvari u OO programiranju)
[ karatas @ 17.01.2007. 13:47 ] @
Hvala puno svima. Skuzio sam u cemu je problem :-)