Warum muss ich static?

osion

Bekanntes Mitglied
Hallo also ich habe einen Aufruf einer anderen Klasse mit einem return (List <string>). Eclipse will das ich die static mache, aber warum? Die andere Variabel ist jaa auch nicht static.

Ist es weil die Methode von der Main aufgerufen wird?

Als Begründung: Cannot make a static reference to the non-static field wortUndBedeutung

Code:

Um diese List geht es:
Java:
static List<String> wortUndBedeutung= new ArrayList<String>();

Von hier wird die Klasse mit dem Return aufgerufen:
Java:
package analyse;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

import antworten.Smaltalk;

import dateien.DateiImport;
import empfindenBenutzer.Interesse;

public class EingabeAnalysieren {
	String eingabeScannerBenutzerGespeichert;
	static List<String> wortUndBedeutung= new ArrayList<String>();
	
	// eingabeAnalysieren Constructor

	// }

	public static void ListeEinlesen(String eingabeScannerBenutzerGespeichert) {
		
		DateiImport alleTexteEinlesen1 = new DateiImport();
		alleTexteEinlesen1.dateienEinlesen();
		

			
			SatzSplittern satzEinzelteileAnalysieren=new SatzSplittern();
			wortUndBedeutung=satzEinzelteileAnalysieren.wortZählen(eingabeScannerBenutzerGespeichert);
			SinnBilden satzZusammenfügen=new SinnBilden();
		//	satzZusammenfügen.satzteileZusammenfügen(wortUndBedeutung);
	}
	
}

Hier wird der Return erzeugt
Java:
package analyse;

import java.util.ArrayList;
import java.util.List;
import dateien.DateiImport;

public class SatzSplittern {

	private static String[] AlleListenZusammenGesplittert2 = new String[4];
	private static Integer[] AlleListenZusammenGesplittert2_0 = new Integer[1];
	int b;
	boolean pruefen = false;
	int i;
	List<String> wortUndBedeutung= new ArrayList<String>();

	public List<String> wortZählen(String eingabeScannerBenutzerGespeichert) {
		DateiImport alleTexteEinlesen1 = new DateiImport();
		alleTexteEinlesen1.dateienEinlesen();
		String[] eingabeScannerBenutzerGespeichertGesplittert = eingabeScannerBenutzerGespeichert
				.split(" ");

		while (eingabeScannerBenutzerGespeichertGesplittert.length > i)

		{
			for (int a = 0; (alleTexteEinlesen1.getAlleListenZusammen().size() - 1) > a; a++) {

				String[] AlleListenZusammenGesplittert = alleTexteEinlesen1
						.getAlleListenZusammen().get(a).split(";");

				if (eingabeScannerBenutzerGespeichertGesplittert[i].startsWith(AlleListenZusammenGesplittert[0])) {
					a = alleTexteEinlesen1.getAlleListenZusammen().size() + 2;
					wortUndBedeutung.add(AlleListenZusammenGesplittert[0]);
					wortUndBedeutung.add(AlleListenZusammenGesplittert[3]);
				}

			}
			i++;
		}
return wortUndBedeutung;
	}
}

gruss
Zelda :lol:
 

Murray

Top Contributor
Was meinst du mit "eine Methode schliessen"? Das return-Statement beendet eine Methode ziemlich zuverlässig; wenn die Methode als void deklariert ist, dann reicht es auch, beim letzten Statement in der Methode angekommen zu sein.

Aus der main-Methode (die ja zwingend "static" sein muss), kann man entweder andere statische Methoden aufrufen, oder (und das ist der normalerweise präferierte Weg) man erzeugt eine Instanz und ruft an der die Methoden auf.

Beispiel 1 (alles statisch):
Java:
public class S1 {
	public static void main( final String ... args) {
		
		System.out.println( f2( "xyz"));
	}
	
	public static String f1() {
		return "test";
	}
	
	public static String f2( final String s) {
		return s + f1();
	}

}

Beispiel 2 (i.d.R. besser):
Java:
public class S1 {
	public static void main( final String ... args) {
		
		S1 s1 = new S1(); //--- hier wird eine Instanz der Klasse S1 erzeugt, an der 
		                  //--- man dann auch Methoden aufrufen kann, die nicht explizit 
		                  //--- als static deklariert worden sind
		System.out.println( s1.f2( "xyz"));
	}
	
	public String f1() {
		return "test";
	}
	
	public String f2( final String s) {
		return s + f1();
	}

}
 

osion

Bekanntes Mitglied
Was meinst du mit "eine Methode schliessen"? Das return-Statement beendet eine Methode ziemlich zuverlässig; wenn die Methode als void deklariert ist, dann reicht es auch, beim letzten Statement in der Methode angekommen zu sein.

Weiss nicht...so ne static methode bleibt ja bis zum Programmende am laufen ^^ wurde mir gesagt ...

Die Methode die Static sein muss, ist die einzige Methode die von der Main aufgerufen wird.

Java:
package freundin;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

import dateien.DateiImport;


import analyse.EingabeAnalysieren;


public class Grund{

	/**
	 * @param args
	 */
	public static void main(String[] args) {

			
			String eingabeBenutzerGespeichert = null;

			Scanner eingabeBenutzer =new Scanner(System.in);
			EingabeAnalysieren eingabeAnalysieren1=new EingabeAnalysieren();
		
		while(eingabeBenutzerGespeichert!="Exit")
		{
			
			System.out.println("Eingabe Bitte");

			eingabeBenutzerGespeichert=eingabeBenutzer.nextLine().toLowerCase();
			System.out.println(eingabeBenutzerGespeichert);
			EingabeAnalysieren.ListeEinlesen(eingabeBenutzerGespeichert);

			
		}
			
		System.out.println("Programm wird beendet!");
	}
}
 

Murray

Top Contributor
Weiss nicht...so ne static methode bleibt ja bis zum Programmende am laufen ^^ wurde mir gesagt ...

Das ist - mit Verlaub gesagt - Quatsch. Auch statische Methoden enden, wenn entweder ein return-Staement erreicht wurde, eine nicht abgefangene Exception aufgetreten ist oder (bei void-Methoden) schlichtweg die letzte Anweisung ausgeführt worden ist.
 

Noctarius

Top Contributor
Bei "normalen" Anfängerprogrammen (ohne Threading) ist diese Aussage für die main-Methode schon richtig um es einfach zu halten, nicht aber für alle statischen Methoden. Generell hat Murray recht, dass auch die main-Methode nicht bis zum Programmende überlebt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
J Warum muss diese Methode static sein ?! Java Basics - Anfänger-Themen 7
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
A OOP Bidirektionale Muss-Assoziation Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
M Was muss ich verändern damit ich es so ausgegeben bekomme wie auf dem Foto? Java Basics - Anfänger-Themen 2
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
L Worauf muss ich achten, wenn ich externe Bibliotheken für meine Anwendungen verwende? Java Basics - Anfänger-Themen 6
L Muss eine HttpURLConnection geschlossen werden? Java Basics - Anfänger-Themen 2
J Muss ich die externen jars mitgeben? Java Basics - Anfänger-Themen 8
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
B 4 Strings, Anfangsbuchstaben muss unterschiedlich sein Java Basics - Anfänger-Themen 12
A Doppele Ketten- da muss einer rein! Java Basics - Anfänger-Themen 6
J App.jar muss im Projekt App als Bibliothek vorhanden sein?! Java Basics - Anfänger-Themen 1
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
S Warum muss ich die operationen mit AffineTransform in umgekehrter Reihenfolge ausfuehren..? Java Basics - Anfänger-Themen 4
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
X Muss man das immer so schreiben o.O Java Basics - Anfänger-Themen 3
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
B Split, Exception - Obwohl es gehen MUSS Java Basics - Anfänger-Themen 3
B FileWriter close() muss? Java Basics - Anfänger-Themen 8
A Threads Eine Klasse muss auf Variable der Anderen warten. Java Basics - Anfänger-Themen 6
D Sound abspielen, wo muss die .wav liegen Java Basics - Anfänger-Themen 3
X Muss man Java können um Jython nutzen zu können? Java Basics - Anfänger-Themen 14
H Problem: Button muss zwei Mal angeklickt werden, bis Aktion ausgeführt wird Java Basics - Anfänger-Themen 4
S jcal4j/jlog4j Wo muss die Properties file rein? Java Basics - Anfänger-Themen 2
D Muss ich eigentlich immer auf die Verwendung des richtigen Datentyps achten? Java Basics - Anfänger-Themen 7
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
D Muss ein Applet schreiben was Mittelwerte berechnet nur was mache ich falsch? Java Basics - Anfänger-Themen 11
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
A Was muss ich ändern? Java Basics - Anfänger-Themen 2
E Object als Parameter das Unbekannt ist, aber ein bestimmtes Interface haben muss Java Basics - Anfänger-Themen 3
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
M Wann muss man eine Variable mit set-/get-Methoden in eine Bean schreiben? Java Basics - Anfänger-Themen 19
T Referenzvariablen - warum muss der Typ definiert werden? Java Basics - Anfänger-Themen 14
E Java-Programm mit Eclipse - wie muss ich anfangen. Java Basics - Anfänger-Themen 7
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
G Muss es immer extends sein ? Java Basics - Anfänger-Themen 9
F Muss ich TableCellEditor implementieren für checkbox abfrage Java Basics - Anfänger-Themen 3
N Muss ein thread aktive mit stop beendet werden? Java Basics - Anfänger-Themen 18
P 2. Jframe öffnen und 1. Jframe muss sich dann schließen ? Java Basics - Anfänger-Themen 4
S Tabelsorter von SUN, wie muss die MysQL Anbindung realisiert Java Basics - Anfänger-Themen 11
J Rekursiv muss dass laufen! Java Basics - Anfänger-Themen 11
S Muss Programm schreiben -BRAUCHE HILFE Java Basics - Anfänger-Themen 15
C Wie muss man hier aufrufen von 2 eigenen Klassen? Java Basics - Anfänger-Themen 6
F Wie muss ich mit Preferences umgehen. Java Basics - Anfänger-Themen 5
J Ich versteh den Fehler nich, was muss ich denn ändern? Java Basics - Anfänger-Themen 3
C Klasse muss auf Event in einer anderen Klasse reagieren Java Basics - Anfänger-Themen 7
G Class.forName: Wie muss die Klasse angegeben werden? Java Basics - Anfänger-Themen 3
M muß durch muss ersetzen Java Basics - Anfänger-Themen 7
G Wie muss classpath lauten? Package kompilieren/interpretiere Java Basics - Anfänger-Themen 4
ven000m try catch - was muss bei catch rein Java Basics - Anfänger-Themen 28
D Wert muss sich pro sek ändern aber wie? HELP! Java Basics - Anfänger-Themen 9
P wohin muss ich die packages kopieren? Java Basics - Anfänger-Themen 12
G wieso muss Textfield final sein? Java Basics - Anfänger-Themen 6
Linad Warum muss man Variablen einen Wert zuweisen? Java Basics - Anfänger-Themen 5
G Warum muss das Textfeld final sein? Java Basics - Anfänger-Themen 2
G JDOM: muss XML-Datei nach Änderung abgespeichert werden? Java Basics - Anfänger-Themen 2
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
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 UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
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
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
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
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

Ähnliche Java Themen

Neue Themen


Oben