static Methoden/Variablen

Status
Nicht offen für weitere Antworten.

Da.Bull

Mitglied
Hallo zusammen,

ich würde gerne mal etwas genauer erfahren, wann genau ich das Command "static" bei Methoden und Variablen benutze bzw. benutzen muss.
Ich weiss, dass man eine statische Variable definiert, damit sie praktisch der Klasse gehört. Aber warum??
Und wie ist das mit den statischen Methoden? Wozu und warum??

Mich würde ausserdem interessieren, wie ich folgendes Programm ohne "static" schreiben würde, falls möglich.
Code:
 public class test
{
	private static int anzahl=10;

	public static void main(String[] args)
	{
		anzahl = anzahl+10;
		test();
	}
	public static void test()
	{
		anzahl = anzahl + 10;
		ausgabe();
	}

	private static void ausgabe()
	{
		anzahl = anzahl + 10;
		System.out.println(anzahl);
	}
}
Vielen Dank schonmal.

MfG Markus

[edit]: Nehme natürlich auch gerne Links zu dem Thema entgegen, wenns verständlich ist :)
 
M

mr1st

Gast
static bei Methoden
Für diese Methoden benötigst Du keine Instanz der Klasse. Das heißt Du kannst sie mit KlassenName.methodenName(...) direkt aufrufen.

static bei Variablen
Auch hier kannst Du ohne Instanz der Klasse darauf zugreifen. Weiters steht sie nur einmal im Speicher, d.h. wenn Du mehrere Instanzen einer Klasse hast, die eine static Variable enthält, ist es für jede Instanz die gleiche Stelle im Speicher.

Des weiteren kann die main-Methode nur auf static Variablen oder Methoden zugreifen, da sie selbst auch static ist.

MfG
 

Da.Bull

Mitglied
Na danke schonmal Mr1st.

Das bedeutet doch eigentlich, dass wenn die "static main" Methode eben "static" ist, was sie ja ist, dass ich dann in die selbe Klasse eigentlich nur statische Methoden benutzen kann, wenn ich sie in die selbe Klasse schreiben möchte, oder?

Und in Folge dessen müsste es ja praktisch nicht so ohne weitere Klassen etc, machbar sein, mein obiges Programm umzuschreiben, oder?

MfG Markus
 

Wildcard

Top Contributor
Obwohl die Main methode statisch ist, kann sie auf nicht statische konstruktoren zugreifen
static sollte man nur in ausnahmefällen benutzen da das nicht sinn der OOP ist
 

Da.Bull

Mitglied
okay, ich frag mal noch anders:

wieso funktioniert das nicht:
Code:
 public class test
{
	private static int anzahl=10;

	public static void main(String[] args)
	{
		test a = new test();
		anzahl = anzahl+10;
		test.atest();
	}
	public void atest()
	{
		anzahl = anzahl + 10;
		ausgabe();
	}

	private void ausgabe()
	{
		anzahl = anzahl + 10;
		System.out.println(anzahl);
	}
}
aber das hier sehr wohl?:
Code:
 class Finder 
{
	private String zeile1, zeile2, zeile3;
	private BufferedReader tastatur, inStream;

	public static void main (String[] args)
	{
		Finder aFind = new Finder();
		aFind.doSearch(args[0]);
	}

	private void doSearch(String dateiName)
	{
              //Firlefanz
	}

	private void displayLine()
	{
		System.out.println("<<--------------- Context:");
	}
}
(stark reduzierter Code)
Warum kann ich im 2. Beispiel Methoden ohne static aufrufen und im 1. nicht?

MfG Markus
 

Griffin

Bekanntes Mitglied
Es liegt einfach an deiner main Methode, du gebrauchst die Objekte falsch.
Code:
  public class test
{
   private static int anzahl=10;

   public static void main(String[] args)
   {
   //Du erstellst hier das Objekt a vom Typ test
      test a = new test();
      anzahl = anzahl+10;
   //Das kann man auch schreiben, weil die Variable statisch ist:
   a.anzahl = a.anzahl + 10;
   test.anzahl = test.anzahl +10;
   //jetzt greifst du über das objekt auf die methode atest() zu
      a.atest();
   }
   public void atest()
   {
      anzahl = anzahl + 10;
      ausgabe();
   }

   private void ausgabe()
   {
      anzahl = anzahl + 10;
      System.out.println(anzahl);
   }
}
 

Da.Bull

Mitglied
danke. hättet mir auch einfach sagen können, dass
Code:
 test a = new test(); 
test.atest();
ein wenig "blöd" ist ... ;)
Aber danke für die Links.

Griffin, danke vielmals. habs deine Antwort erst nach meinem Post gesehen. thx a lot
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
F LogDatei static Methoden Java Basics - Anfänger-Themen 8
capgeti Datentypen Static methoden aus Superklasse mit Generics definieren? Java Basics - Anfänger-Themen 9
K non-static Methoden ausführen? Java Basics - Anfänger-Themen 3
M Datentypen static methoden Java Basics - Anfänger-Themen 5
L Zusammenhang Methoden, Klassen, Objekte, static - sun doku Java Basics - Anfänger-Themen 4
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
T Problem mit static Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
D Erklärung static boolean Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
E non-static method und static context Java Basics - Anfänger-Themen 15
B non static interface Methode Java Basics - Anfänger-Themen 16
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
S Static void Methode Java Basics - Anfänger-Themen 12
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
J Variablen non-static variable Java Basics - Anfänger-Themen 2
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2
S Methoden Warum ist sleep static? Java Basics - Anfänger-Themen 9
K static, non-static Krise Java Basics - Anfänger-Themen 4
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
Y Gebrauch von static Java Basics - Anfänger-Themen 29
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
T getClass() im static Kontext Java Basics - Anfänger-Themen 12
S Frage zu public static Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben