Avatar billede trophymanager Nybegynder
20. oktober 2005 - 22:30 Der er 9 kommentarer og
1 løsning

non static content

Hej.

Jeg får en fejl som jeg ikke har kunne finde løsningen på eller grunden til. Inde i en klasse prøver jeg at ændre et objekts attribut, og får så fejlen "non-static methoc cannot be referenced from a static content"

Hvad skyldes dette og hvordan kan jeg komme uden om det?
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:31 #1
du forsøger at tilgå en ikke static variabel eller ikke static metode
fra en static metode

det kan man ikke
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:32 #2
om du skal ændre det du bruger til at være static eller ændre det kaldende
til at være ikke static må afhænge af dit program
Avatar billede trophymanager Nybegynder
20. oktober 2005 - 22:37 #3
Jeg tror hovedproblemet er at jeg ikke forstår hvad "static" gør - og hvordan man ændrer til den modsatte.
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:40 #4
du ændrer fra static til ikke statoc ved at fjerne static keywordet
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:41 #5
static betyder (ulogisk !) at variabel eller metode kun findes i et eksemplar for
klassen mens ikke static betyder at variabel eller metode findes i et eksemplar per
objekt der laves af klassen
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:42 #6
[selve koden i metoderne duplikeres ikke kun den kontekst de kører]
Avatar billede trophymanager Nybegynder
20. oktober 2005 - 22:47 #7
jamen så blev jeg lidt klogere - fik ihvertfald løst fejlen.

Kan dog stadig ikke helt gennemskue hvornår man vil få brug for static :/

smid et svar
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:48 #8
svar
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:49 #9
det gør man en gang imellem
Avatar billede arne_v Ekspert
20. oktober 2005 - 22:59 #10
sjovt lille eksempel:

package october;

public class NofN {
    private static int total = 0;
    private int me;
    public NofN() {
        total++;
        me = total;
    }
    public String toString() {
        return ("I am " + me + " of " + total);
    }
    public static void main(String[] args) {
        NofN a = new NofN();
        NofN b = new NofN();
        NofN c = new NofN();
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester