07. oktober 2002 - 00:48Der er
9 kommentarer og 2 løsninger
non-static method ... cannot
Som den nybegynder jer er i Java, er jeg rendt ind i et lille simpelt spørgsmål!
jeg har flg.
public static void main(String args[]){
System.out.println("Starting...") Go(); }
public void Go(){ System.out.println("Go Go Go") }
Jeg får at vide "non-static method Go() cannot be referenced from a static context" Jeg er ikke int. i at lave alle mine metoder statiske for at få det til at funke. Hvordan kalder jeg en normal metode fra en static, eller rettere hvordan starter jeg mit program?, da main er den eneste metode der bliver kaldt ved start og jeg vil jo gerne kunne fortsætte programløbet i andre metoder??
du kan ikke kalde en normal metode fra en statisk. En normal metode er tilknyttet en INSTANS af klasse mens en ststisk metode er GENEREL for klassen. Du laver main metoden statisk, fordi du jo ikke skal oprette et objekt for at køre den, men skal køre den seperat af klassen. Du kan derimod godt køre en ikke statisk metode fra en statisk, hvis og kun hvis du anvender en instans. public class Test { public Test() { } // en konstruktoy public static void main(String args[]){ System.out.println("Starting..."); Test test = new Test(); // vi laver en instans af Test så vi kan bruge metoden go test.go(); }
public void go() { System.out.println("Go Go Go"); } }
Det bedste er at kalde din klasses Constructor direkte fra din main metode: class Test { public static void main(String args[]) { System.out.println("Starting...") new Test(); }
public Test() { Go(); }
public void Go() { System.out.println("Go Go Go") } }
erikjacobsen>> jo det var det vel! havde ik lige set den.. kiggede kun koderne igennem! men han er nok selv blevet meget klogere på området siden. ;-)
Synes godt om
Ny brugerNybegynder
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.