04. oktober 2003 - 18:41Der er
19 kommentarer og 2 løsninger
Kan den gøres anti static ?
Lad mig lægger ud med koden:
public class Const { static int basicNumber;
int increase(int Number) { Number = basicNumber; for(int i = 0; i < 10; i++) { basicNumber++; } return basicNumber;
}
public static void main(String[] args) {
Const basicNumber1 = new Const();
basicNumber1.increase(basicNumber);
System.out.println(basicNumber1.basicNumber);
System.out.println(basicNumber);
} }
Jeg vil gerne have, at den sidste gang jeg udskriver basicNumber at den er nulstillet, men hvis jeg fjerner static fra variablen i starten kommer fejlen "non-static variable basicNumber cannot be....."
Det er blevet til noget slam-kode, men prøv lige at se hvad der kan gøres :)
variable der benyttes af en statisk metode SKAL være statiske. for det er metoden main altid.
Hvis du vil pille ved en ikke statisk variabel skal det gøres (som du også gør det) ved at oprette en instans af klassen og adressere ind i den instans. System.out.println(basicNumber1.basicNumber); // som du gør her.
Men dit spørgsmål er lidt underligt. hvorfo skulle basicNumber blive nul af at ikke være statisk? Prøv at forklare lidt mere hvad du vil.
Kan godt se, at det er blevet til noget skod kode :D
Hvad jeg vil have er, at variablen basicNumber er 10 hvis den kaldes fra basicNumber1 instansen, og 0 hvis den bare kaldes med System.out.println(basicNumber);
Pas lidt på med at give klasser navne som, med små bogstaver, er reserverede ord.
const er et reserveret ord i Java.
En typisk måde at lave objekter på er at kalde variablen det samme som klassen, bare med lille start bogstav. Det giver problemer hvis det så er et reserveret ord..
Startede med, at jeg lige ville prøve og finde ud af eclipse (der er en del ting der popper op hele tiden), og ville så skrive et simpelt program, som jeg ikke kan hitte ud af :D
class Main { public static void main(String args[]) { Counter c1 = new Count(); Counter c2 = new Count(); cl.increase(1234); c2.increase(4321); System.out.println(cl.getCount()); System.out.println(c2.getCount()); } }
Du kunne f.eks. implementere en "decrease" og en "reset" metode. Det kunne nok også være fint, afhængig af situationen, hvis man teste om det var positive tal der blev puttet ind i increase og negative tal i decrease.
bruger nu ikke ajax...deres reklamer minder om "tyske schlager hits", så en fugtig klud klarer skam skærene, piller også kun på andre folks skærme :P
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.